📄 xiyou.java
字号:
case MS_CONFIRM:
DrawMenuBg(GetString(DWorld.STR_ID_MAIN_MENU_6));
s_g.setColor(COLOR_BLUE_WALL);
//blue bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , MS_CONFIRM_Y ,MS_CONFIRM_YN_W, MS_CONFIRM_YN_H ,10, 10);
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH + 10>> 1 , MS_CONFIRM_Y ,MS_CONFIRM_YN_W, MS_CONFIRM_YN_H, 10, 10);
drawImageString(s_g, GetString(DWorld.STR_ID_YES),
PINGMUDDD.sssCHUANNN_WIDTH - MS_STRING_OFFSET_X>> 1, MS_CONFIRM_Y + MS_STRING_OFFSET_Y, FONT_HUGE, IMG_FONT_CENTER,
s_selectedIndex == 0 ? 1 : 0);
drawImageString(s_g, GetString(DWorld.STR_ID_NO),
PINGMUDDD.sssCHUANNN_WIDTH + MS_STRING_OFFSET_X>> 1, MS_CONFIRM_Y + MS_STRING_OFFSET_Y, FONT_HUGE, IMG_FONT_CENTER,
s_selectedIndex == 1 ? 1 : 0);
DrawButtons(true ,false);
if (IsKeyPressed(GK_LEFT | GK_RIGHT) )s_selectedIndex = 1 - s_selectedIndex;
if (IsKeyPressed(GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
else if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
{
if(s_selectedIndex == 1)
{
SetMenuStatus(MS_MAINMENU);
}
else if(s_selectedIndex == 0)
{
Quit();
}
}
changeSelect(2);
break;
case MS_ENTER_NAME:
s_g.drawImage(s_menuBg2 , 0 , 0 , 0);
s_g.setColor(COLOR_YELLOW_BG);
s_g.fillRoundRect( MS_OPTION_BG_X , MS_OPTION_BG_Y, MS_OPTION_BG_W, MS_OPTION_BG_H, MS_OPTION_BG_ARC_W, MS_OPTION_BG_ARC_W);
s_g.setColor(COLOR_BLUE_WALL);
//text about bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - 100 >> 1 , MS_OPTION_BG_Y + 5 ,100, 20, 10, 10);
drawImageString(s_g, GetString(DWorld.STR_ID_ENTER_NAME),
PINGMUDDD.sssCHUANNN_WIDTH >> 1, MS_OPTION_BG_Y + 9, FONT_HUGE, IMG_FONT_CENTER,
0);
for(int i = 0 ; i < 28 ; i++)
{
if(i == 26)
{
s_g.setClip(MS_CHAR_OFFSET_X + (i % MS_CHAR_NUM_LINE) * MS_CHAR_STEP - 7, MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + (i / MS_CHAR_NUM_LINE) * MS_CHAR_STEP, 11, 12);
s_g.drawImage(s_menuArrow , MS_CHAR_OFFSET_X + (i % MS_CHAR_NUM_LINE) * 14 - 8 , MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + (i / MS_CHAR_NUM_LINE) * MS_CHAR_STEP - 32 , 0);
continue;
}
if(i == 27)
{
s_g.setClip(MS_CHAR_OFFSET_X + (i % MS_CHAR_NUM_LINE) * MS_CHAR_STEP - 7, MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + (i / MS_CHAR_NUM_LINE) * MS_CHAR_STEP , 17, 18);
s_g.drawImage(s_menuArrow , MS_CHAR_OFFSET_X + (i % MS_CHAR_NUM_LINE) * MS_CHAR_STEP - 39 - 7 , MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + (i / MS_CHAR_NUM_LINE) * MS_CHAR_STEP - 68 , 0);
break;
}
drawImageString(s_g, "" +(char) ('A' + i),
MS_CHAR_OFFSET_X + (i % MS_CHAR_NUM_LINE) * MS_CHAR_STEP, MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + (i / MS_CHAR_NUM_LINE) * MS_CHAR_STEP, FONT_MEDIUM, IMG_FONT_CENTER,
1);
}
if(s_namePos != 0 && s_name != null)
{
String temp = new String(s_name , 0 , s_namePos);
drawImageString(s_g, temp,
MS_CHAR_OFFSET_X , MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y + 4* MS_CHAR_STEP + 10, FONT_MEDIUM, IMG_FONT_LEFT,
1);
}
//indicator
s_g.setClip(s_enterNameX - 7 , s_enterNameY , 13, 13);
s_g.drawImage(s_menuArrow , s_enterNameX - 29 - 7, s_enterNameY - 36 , 0);
if (IsKeyPressed(GK_RIGHT) || IsKeyHold(GK_RIGHT) )
{
s_enterNameX++;
}
else if(IsKeyPressed(GK_LEFT )|| IsKeyHold(GK_LEFT) )
{
s_enterNameX--;
}
else if(IsKeyPressed(GK_UP )|| IsKeyHold(GK_UP) )
{
s_enterNameY--;
}
else if(IsKeyPressed(GK_DOWN)|| IsKeyHold(GK_DOWN) )
{
s_enterNameY++;
}
else if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
{
int charoffset = CalChar(s_enterNameX , s_enterNameY , MS_OPTION_BG_Y + MS_CHAR_OFFSET_Y );
if(charoffset != NO_CHAR)
{
if (charoffset == 27 || s_namePos == NAME_LEN)
{
if(s_namePos != 0)
{
String tmp = new String(s_name, 0, s_namePos);
InsertName(tmp, Rand(100, 1000));
SaveOrLoad(true);
}
SetMenuStatus(MS_HIGHSCORE);
}
else if(charoffset == 26)
{
if(s_namePos > 0)s_namePos--;
s_name[s_namePos] = 0;
}
else
{
s_name[s_namePos] = (byte) ('A'+charoffset);
s_namePos++;
}
}
}
else if (IsKeyPressed(GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
break;
case MS_SOUND_ON_OFF:
break;
}
}
public static void SetMenuStatus(int newMenuStatus)
{
s_menuStatus = newMenuStatus;
s_selectedIndex = 0;
s_ctrMenu = 0;
s_beginIndex = 0;
s_changeCommand = 1;
if(newMenuStatus == MS_ENTER_NAME)
{
InitHighCursor();
}
if(newMenuStatus == MS_MAINMENU)
{
s_selectedIndex = s_lastMainMenuSelect ;
s_beginIndex = s_lastBeginIndex;
}
if(newMenuStatus == MS_HIGHSCORE)
{
s_enterNameX = RESET_X + (RESET_W >> 1);
s_enterNameY = RESET_Y+ (RESET_H >> 1) - 7;
}
if(newMenuStatus == MS_ABOUT)
{
s_scrollY = MS_ABOUT_CLIP_TOP + (MS_ABOUT_CLIP_H >> 1);
}
if(newMenuStatus == MS_HELP)
{
s_scrollY = MS_ABOUT_CLIP_TOP ;
}
}
public static void FILLSCREEN(int color)
{
s_g.setClip(PINGMUDDD.sssCHUANNN_LEFT, PINGMUDDD.sssCHUANNN_TOP , PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT);
s_g.setColor(color);
s_g.fillRect(PINGMUDDD.sssCHUANNN_LEFT, PINGMUDDD.sssCHUANNN_TOP , PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT);
}
/**
* draw the select list background in the mainmenu and some other used the button image
* @param g Graphics
* @param x int
* @param y int
* @param totalLines int
* @param selectId int
* @param txtStartId int
* @param wordMove int
*/
public static void drawSelectListBg(Graphics g, int x, int y, int totalLines, int selectId ,int txtStartId, int wordMove)
{
for (int i = s_beginIndex ; i < s_beginIndex + MAINMENU_LEN_SHOW ; i++)
{
g.setClip(x, y, MENU_MAIN_CENTER_W, MENU_BAR_SELECT_H);
drawImageString(g, GetString(txtStartId + i ),
x+wordMove, y + 5, FONT_HUGE, IMG_FONT_CENTER,
i == selectId ?1: 0);
y += CHAR_H[0] + 2;
}
}
public static final int NO_CHAR = -1;
public static int CalChar(int x , int y , int RELATIVE_Y)
{
int tmp = ((y + 7 - RELATIVE_Y) / MS_CHAR_STEP) * MS_CHAR_NUM_LINE + ((x + 7 - MS_CHAR_OFFSET_X) / MS_CHAR_STEP) % MS_CHAR_NUM_LINE;
return tmp < 28 && tmp >=0 ? tmp : NO_CHAR;
}
//init highscore cursor
public static void InitHighCursor()
{
s_namePos = 0;
s_name = null;
s_name = new byte[NAME_LEN];
s_enterNameX = MS_CHAR_OFFSET_X;
s_enterNameY = INGAME_HIGHSCORE_Y + MS_CHAR_OFFSET_Y;
}
//for move indicator
public static void MoveIndicator(int limitX , int limitY , int limitW , int limitH)
{
/*
if (IsKeyPressed(GK_RIGHT) || IsKeyHold(GK_RIGHT) )
{
s_enterNameX+= MS_CHAR_STEP;
}
else if(IsKeyPressed(GK_LEFT )|| IsKeyHold(GK_LEFT) )
{
s_enterNameX-= MS_CHAR_STEP;
}
else if(IsKeyPressed(GK_UP )|| IsKeyHold(GK_UP) )
{
s_enterNameY-= MS_CHAR_STEP;
}
else if(IsKeyPressed(GK_DOWN)|| IsKeyHold(GK_DOWN) )
{
s_enterNameY+= MS_CHAR_STEP;
}
//*/
if (IsKeyPressed(GK_RIGHT) )
{
if(s_enterNameX>= limitX + limitW)
{
s_enterNameX = limitX;
}
else
{
s_enterNameX+= MS_CHAR_STEP;
}
}
else if(IsKeyPressed(GK_LEFT ))
{
if(s_enterNameX <= limitX)
{
s_enterNameX = limitX + limitW;
}
else
{
s_enterNameX-= MS_CHAR_STEP;
}
}
else if(IsKeyPressed(GK_UP ) )
{
if(s_enterNameY <= limitY)
{
s_enterNameY = limitY + limitH;
}
else
{
s_enterNameY-= MS_CHAR_STEP;
}
}
else if(IsKeyPressed(GK_DOWN))
{
if(s_enterNameY >= limitY + limitH)
{
s_enterNameY = limitY;
}
else
{
s_enterNameY+= MS_CHAR_STEP;
}
}
}
// draw buttons
public static void DrawButtons(boolean haveBack , boolean haveNext)
{
if(haveBack)
{
s_g.setClip(2, PINGMUDDD.sssCHUANNN_HEIGHT - 15, 13 , 13);
s_g.drawImage(s_menuArrow , 2, PINGMUDDD.sssCHUANNN_HEIGHT - 15 , 0);
}
}
//draw text
public static void DrawTxtButton()
{
drawImageString(s_g, GetString(DWorld.STR_ID_SKIP),
PINGMUDDD.sssCHUANNN_WIDTH - 5, PINGMUDDD.sssCHUANNN_HEIGHT - CHAR_H[0] - 1, FONT_HUGE, IMG_FONT_RIGHT,
0);
}
//draw general bg
public static void DrawMenuBg(String str)
{
s_g.setClip(0 , 0 , PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT);
s_g.drawImage(s_menuBg2, 0 , 0 , 0);
s_g.setColor(COLOR_YELLOW_BG);
s_g.fillRoundRect( MS_OPTION_BG_X , MS_OPTION_BG_Y, MS_OPTION_BG_W, MS_OPTION_BG_H, MS_OPTION_BG_ARC_W, MS_OPTION_BG_ARC_W);
s_g.setColor(COLOR_BLUE_WALL);
//text about bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - MS_OPTION_TITLE_W >> 1 , MS_OPTION_BG_Y + MS_TITLE_BG_OFFSET_Y ,MS_OPTION_TITLE_W, MS_OPTION_TITLE_H, 10, 10);
drawImageString(s_g, str,
PINGMUDDD.sssCHUANNN_WIDTH >> 1, MS_OPTION_BG_Y + MS_TITLE_BG_OFFSET_Y + MS_TITLE_OFFSET_Y, FONT_HUGE, IMG_FONT_CENTER,
0);
}
// menu inter face arrow
public static final int ARROW_TO_LEFT = 0;
public static final int ARROW_TO_DOWN = 1;
public static final int ARROW_TO_UP = 2;
public static final int ARROW_INDICATOR = 3;
public static final int ARROW_CONFIRM = 4;
public static int s_arrowTick = 0 ;
public static void DrawArrow(int x , int y , int arrowID , boolean isFlip)
{
if(arrowID == ARROW_TO_LEFT)
{
s_g.setClip(x + s_arrowTick , y , 7 , 7);
s_g.drawImage(s_menuArrow , x + s_arrowTick - 9 , y - 14, 0);
}
else if(arrowID == ARROW_TO_DOWN)
{
}
else if(arrowID == ARROW_TO_UP)
{
}
else if(arrowID == ARROW_INDICATOR)
{
s_g.setClip(x + s_arrowTick , y , 9 , 9);
s_g.drawImage(s_menuArrow , x + s_arrowTick , y -14 , 0);
}
else if(arrowID == ARROW_CONFIRM)
{
s_g.setClip(x + s_arrowTick , y , 11 , 11);
s_g.drawImage(s_menuArrow , x + s_arrowTick , y -23 , 0);
}
if(isFlip)
{
s_arrowTick = s_arrowTick < 2 ? ++s_arrowTick : 0;
}
}
//drawGameLoad
public static void DrawResLoad(int frameLen)
{
if(s_gameStatus == DGameStatus.GS_LOAD_PRELUDE_RES)
{
FILLSCREEN(0XFFFFFF);
s_g.setClip(0 , 0 , PINGMUDDD.PINGMUKUAN, PINGMUDDD.PINGMUGAO);
s_g.drawImage(s_splash , PINGMUDDD.PINGMUKUAN >> 1 , PINGMUDDD.PINGMUGAO - 60>> 1 , Graphics.VCENTER | Graphics.HCENTER);
s_g.setColor(0x0);
s_g.fillRect(PINGMUDDD.PINGMUKUAN - SPLASH_LOADING_WIDTH >> 1, PINGMUDDD.PINGMUGAO - 30, SPLASH_LOADING_WIDTH, 8);
s_g.setColor(COLOR_YELLOW_BG);
s_g.fillRect(PINGMUDDD.PINGMUKUAN - SPLASH_LOADING_WIDTH >> 1, PINGMUDDD.PINGMUGAO - 30, s_ctrGameStatus * SPLASH_LOADING_WIDTH / frameLen, 8);
s_g.setColor(COLOR_BLUE_WALL);
s_g.drawRect(PINGMUDDD.PINGMUKUAN - SPLASH_LOADING_WIDTH >> 1, PINGMUDDD.PINGMUGAO - 30, SPLASH_LOADING_WIDTH, 8);
}
else
{
FILLSCREEN(COLOR_BLUE_WALL);
s_g.setColor(0xFFFFFF);
s_g.fillRect(0, PINGMUDDD.PINGMUGAO - 20, s_ctrGameStatus * PINGMUDDD.PINGMUKUAN / frameLen, 1);
drawImageString(s_g, GetString(DWorld.STR_ID_LOADING),
(PINGMUDDD.PINGMUKUAN >> 1), PINGMUDDD.PINGMUGAO - 40, FONT_HUGE, IMG_FONT_CENTER,
0);
}
}
public static int s_cheatCodeInput;
public static boolean s_cheatModeEnabled;
public static boolean s_cheatMenu;
pri
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -