📄 xiyou.java
字号:
{
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.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(5, PINGMUDDD.sssCHUANNN_HEIGHT - 21, 20 , 20);
s_g.drawImage(s_menuArrow , 5 - 32, PINGMUDDD.sssCHUANNN_HEIGHT - 21 - 11 , 0);
}
if(haveNext)
{
s_g.setClip(PINGMUDDD.sssCHUANNN_WIDTH - 22, PINGMUDDD.sssCHUANNN_HEIGHT - 21 , 17, 18);
s_g.drawImage(s_menuArrow , PINGMUDDD.sssCHUANNN_WIDTH - 22 - 32, PINGMUDDD.sssCHUANNN_HEIGHT - 21 - 44 , 0);
}
}
//draw text
public static void DrawTxtButton()
{
draw
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -