📄 xiyou.java
字号:
if(s_selectedIndex < SHOW_LEVEL - 1)
{
s_selectedIndex++;
}
else
{
if (s_beginIndex < TOTAL_LEVEL - SHOW_LEVEL)
{
s_beginIndex++;
}
}
s_updateMenu = true;
}
else if (IsKeyPressed(GK_UP) )
{
if (s_selectedIndex > 0)
{
s_selectedIndex--;
}
else
{
if(s_beginIndex > 0)
{
s_beginIndex--;
}
}
s_updateMenu = true;
}
if (IsKeyPressed(GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
Jiaose.s_level = 0;
}
else if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
{
if(s_selectedIndex + s_beginIndex <= Jiaose.s_levelSaved )
{
Jiaose.s_level = s_selectedIndex + s_beginIndex;
SetGameStatus(DGameStatus.GS_LOAD_GAME_RES);
}
}
break;
case MS_OPTION:
DrawMenuBg(GetString(DWorld.STR_ID_MAIN_MENU_2));
s_g.setColor(COLOR_BLUE_WALL);
//blue bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , MS_OPTION_BG_Y + 5 + MS_BOX_OFFSET_Y , GER_MENU_W, MS_OPTION_RECT_H, 10, 10);
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W >> 1 , MS_OPTION_BG_Y + 5 + MS_BOX_OFFSET_Y + MS_OPTION_IMG_H + MS_OPTION_TWO_RECT_SPACE , GER_MENU_W, MS_OPTION_RECT_H, 10, 10);
//pic bg
s_g.setColor(0xFFFFFF);
s_g.fillRoundRect( MS_OPTION_BG_X + MS_OPTION_IMG_OFFSET_X , MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y ,MS_OPTION_IMG_H ,MS_OPTION_IMG_H, 10, 10);
s_g.fillRoundRect( MS_OPTION_BG_X + MS_OPTION_IMG_OFFSET_X , MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y + MS_OPTION_IMG_H + MS_OPTION_TWO_RECT_SPACE ,MS_OPTION_IMG_H, MS_OPTION_IMG_H, 10, 10);
s_g.setColor(0x00FF00);
s_g.drawRoundRect( MS_OPTION_BG_X + MS_OPTION_IMG_OFFSET_X , MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y + (MS_OPTION_IMG_H + MS_OPTION_TWO_RECT_SPACE) * s_selectedIndex ,MS_OPTION_IMG_H, MS_OPTION_IMG_H, 10, 10);
s_g.drawRoundRect( MS_OPTION_BG_X + MS_OPTION_IMG_OFFSET_X + 1 , MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y + (MS_OPTION_IMG_H + MS_OPTION_TWO_RECT_SPACE) * s_selectedIndex + 1 ,MS_OPTION_IMG_H - 2, MS_OPTION_IMG_H - 2, 10, 10);
//sound
drawImageString(s_g, GetString(DWorld.STR_ID_SOUND),
MS_OPTION_BG_X + MS_OPTION_SOUND_OFFSET_X, MS_OPTION_BG_Y + 5+ MS_OPTION_SOUND_OFFSET_Y, FONT_MINI, IMG_FONT_LEFT,
1);
drawImageString(s_g, GetString(DWorld.STR_ID_ON + (s_soundOn ? 0 : 1)),
MS_OPTION_BG_X + MS_OPTION_SOUND_ON_OFFSET_X, MS_OPTION_BG_Y + 5 + MS_OPTION_SOUND_ON_OFFSET_Y, FONT_MINI, IMG_FONT_CENTER,
1);
//option
drawImageString(s_g, GetString(DWorld.STR_ID_VIBRATION),
MS_OPTION_BG_X + MS_OPTION_VIB_OFFSET_X, MS_OPTION_BG_Y + 5 + MS_OPTION_VIB_OFFSET_Y, FONT_MINI, IMG_FONT_LEFT,
1);
drawImageString(s_g, GetString(DWorld.STR_ID_ON + (s_vibrationOn ? 0 : 1) ),
MS_OPTION_BG_X + MS_OPTION_VIB_ON_OFFSET_X, MS_OPTION_BG_Y + 5 + MS_OPTION_VIB_ON_OFFSET_Y, FONT_MINI, IMG_FONT_CENTER,
1);
//draw image
s_g.setClip(MS_OPTION_BG_X + 70 + 3 + 32 , MS_OPTION_BG_Y + 10 + 28 + 7 , 32, 35);
s_g.drawImage(s_menuArrow , MS_OPTION_BG_X + 70 + 3 + 32, MS_OPTION_BG_Y + 10 + 28 - 35 + 7 , 0);
s_g.setClip(MS_OPTION_BG_X + 70 + 3 + 32, MS_OPTION_BG_Y + 10 + 28 + 52 + 45 , 32 , 35);
s_g.drawImage(s_menuArrow , MS_OPTION_BG_X + 70 + 3 + 32, MS_OPTION_BG_Y + 10 + 28 + 52 + 45 , 0);
DrawButtons(true ,false);
changeSelect(2);
if (IsKeyPressed(GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
else if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
{
if(s_selectedIndex == 0)
{
s_soundOn =! s_soundOn;
}
else if(s_selectedIndex == 1)
{
s_vibrationOn = !s_vibrationOn;
Librate(false , 1000);
}
}
break;
case MS_ABOUT:
DrawMenuBg(GetString(DWorld.STR_ID_MAIN_MENU_5));
s_g.setColor(COLOR_BLUE_WALL);
//blue bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , MS_ABOUT_CLIP_TOP ,GER_MENU_W, MS_ABOUT_CLIP_H + 8, 10, 10);
int lenABOUT = drawStringLines(GetString(DWorld.STR_ID_ABOUT) , PINGMUDDD.sssCHUANNN_WIDTH >> 1 , s_scrollY , CHAR_H[FONT_MINI] + 3 , IMAGE_STR , IMG_FONT_CENTER);
s_scrollY -=2;
if(s_scrollY + lenABOUT * (CHAR_H[FONT_MINI] + 3)< MS_ABOUT_CLIP_TOP)
{
s_scrollY = MS_ABOUT_CLIP_TOP + MS_ABOUT_CLIP_H ;
}
DrawButtons(true ,false);
if (IsKeyPressed(GK_A | GK_SOFT_RIGHT |GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
break;
case MS_HELP:
DrawMenuBg(GetString(DWorld.STR_ID_MAIN_MENU_4));
s_g.setColor(COLOR_BLUE_WALL);
//blue bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , MS_ABOUT_CLIP_TOP ,GER_MENU_W, MS_ABOUT_CLIP_H + 8, 10, 10);
int len = drawStringLines(GetString(DWorld.STR_ID_HELP) , PINGMUDDD.sssCHUANNN_WIDTH >> 1 , s_scrollY , CHAR_H[FONT_MINI] + 3 , IMAGE_STR , IMG_FONT_CENTER);
if (IsKeyPressed(GK_DOWN) )
{
if(s_scrollY + len * (CHAR_H[FONT_MINI] + 3) > MS_ABOUT_CLIP_TOP + MS_ABOUT_CLIP_H - CHAR_H[FONT_MINI] + 3)
{
s_scrollY -= CHAR_H[FONT_MINI] + 3 ;
}
}
else if (IsKeyPressed(GK_UP) )
{
if(s_scrollY < MS_ABOUT_CLIP_TOP)
{
s_scrollY += CHAR_H[FONT_MINI] + 3 ;
}
}
if(s_scrollY + len * (CHAR_H[FONT_MINI] + 3)< MS_ABOUT_CLIP_TOP)
{
s_scrollY = MS_ABOUT_CLIP_TOP + MS_ABOUT_CLIP_H ;
}
DrawButtons(true ,false);
if (IsKeyPressed(GK_A | GK_SOFT_RIGHT|GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
break;
case MS_HIGHSCORE:
DrawMenuBg(GetString(DWorld.STR_ID_MAIN_MENU_3));
s_g.setColor(COLOR_BLUE_WALL);
//blue bg
s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , MS_OPTION_BG_Y + 5 + MS_BOX_OFFSET_Y ,GER_MENU_W, HIGH_SCORE_H, 10, 10);
//RESET
s_g.fillRoundRect( RESET_X , RESET_Y , RESET_W, RESET_H, 10, 10);
drawImageString(s_g, GetString(DWorld.STR_ID_RESET),
RESET_X + 2, RESET_Y + 3, FONT_HUGE, IMG_FONT_LEFT,
0);
for(int i = 0 ; i < NAME_NUM ; i++)
{
String name = null;
if(s_scores[i] == 0)
{
name = "" + (i + 1);
}
else
{
name = "" + (i + 1) + " " + s_names[i];
drawImageString(s_g, "" + s_scores[i],
HIGH_SCORE_SCORE_LEFT, MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y + i * HIGH_SCORE_STEP_LINE, FONT_MINI, IMG_FONT_RIGHT,
1);
}
drawImageString(s_g, name,
HIGH_SCORE_NAME_LEFT, MS_OPTION_BG_Y + 10 + MS_BOX_OFFSET_Y + i * HIGH_SCORE_STEP_LINE, FONT_MINI, IMG_FONT_LEFT,
1);
}
DrawButtons(true ,false);
if (IsKeyPressed(GK_SOFT_LEFT) )
{
SetMenuStatus(MS_MAINMENU);
}
else if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
{
for(int i = 0;i < NAME_NUM ; i++ )
{
s_names[i] = "";
s_scores[i] = 0;
}
SaveOrLoad(true);
}
break;
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;
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.s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -