📄 game.java
字号:
m_CoverAnimation.currentAnimation.length - 1) {
return true;
}
else {
return false;
}
}
/**
* drawSelector
* 绘制动画的先择光标
*/
public void drawSelector(String[] str, Graphics m_Graphics) {
imgx_MenuItems.setAnchor(Graphics.LEFT | Graphics.TOP);
if (m_LastPosition != m_Position) {
//#if (NOKIA_S40_V1||NOKIA_S40_V2)
//# if(m_LastPosition>m_Position) m_CursorSmallDIS-=MENU_GAP;
//# else m_CursorSmallDIS+=MENU_GAP;
//#elif (MOTO_V600||MOTO_E398)
//# if (m_LastPosition > m_Position) {
//# m_CursorSmallDIS -= MENU_GAP / 2;
//# }
//# else {
//# m_CursorSmallDIS += MENU_GAP / 2;
//# }
//#else
if (m_LastPosition > m_Position) {
m_CursorSmallDIS -= MENU_GAP / 5;
} else {
m_CursorSmallDIS += MENU_GAP / 5;
}
//#endif
if (Math.abs(m_CursorSmallDIS) >= MENU_GAP) {
m_CursorSmallDIS = 0;
m_LastPosition = m_Position;
}
//绘制菜单的上下滚动按钮
if (m_LastPosition > m_Position) {
imgx_MenuItems.drawFrame(m_Graphics, 4, MENU_SCROLLBAR_X - 2,
MENU_SCROLLBAR_TOP_Y);
}
if (m_LastPosition < m_Position) {
imgx_MenuItems.drawFrame(m_Graphics, 6, MENU_SCROLLBAR_X - 2,
MENU_SCROLLBAR_BOTTOM_Y);
}
} //~end if (m_LastPosition!=m_Position)
//绘制菜单的选择框
imgx_selector.setAnchor(Graphics.RIGHT | Graphics.VCENTER);
imgx_selector.drawFrame(m_Graphics, 0,
MENU_X -
m_MenuFont.stringWidth(str[m_Position]) / 2 - 2,
MENU_Y + m_LastPosition * MENU_GAP +
m_CursorSmallDIS);
imgx_selector.setAnchor(Graphics.LEFT | Graphics.VCENTER);
imgx_selector.drawFrame(m_Graphics, 1,
MENU_X +
m_MenuFont.stringWidth(str[m_Position]) / 2 + 4,
MENU_Y + m_LastPosition * MENU_GAP +
m_CursorSmallDIS);
//绘制菜单条
int oldColor = m_Graphics.getColor();
m_Graphics.setColor(COLOR_YELLOW);
m_Graphics.fillRect(MENU_SCROLLBAR_X,
MENU_Y +
m_LastPosition * MENU_SCROLLBAR_LENGTH / str.length +
m_CursorSmallDIS + MENU_SCROLLBAR_CHK, 7,
MENU_SCROLLBAR_LENGTH / str.length);
m_Graphics.setColor(oldColor);
}
/**
* drawGameMenuAnimation
* 绘制菜单框收缩的动画
*/
public void drawGameMenuAnimation(Graphics g) {
m_MenuFrameAnimation.setNextFrame();
m_MenuFrameAnimation.paint(g, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
PieceSprite.TRANS_NONE);
}
/**
* 画主菜单界面
* @param g Graphics
*/
protected void doMainMenuState(Graphics g) {
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
drawGameMenuAnimation(g);
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
int currPosition = 0;
drawSelector(MENU_MAIN, g);
/* paint menu components */
/* #0 */
g.setColor(COLOR_ACTIVE);
for (int i = 0; i < MENU_MAIN.length; i++) {
setMenuItemsColor(i, g);
ToolBox.drawOutlinedText(g, m_MenuFont, MENU_MAIN[i], MENU_X,
MENU_Y + (currPosition++ * MENU_GAP),
Graphics.HCENTER | Graphics.VCENTER);
}
}
if (bSelectKeyDown && bGameMenuAnimationOver()) {
switch (m_Position) {
case 0:
changeState(STATE_GAMEMENU);
break;
case 1:
changeState(STATE_OPTIONSMENU);
break;
case 2:
if (m_Text == null) {
m_Text = ToolBox.splitText( (Object)this, RES_HELP, HELP_LINE_LEN,
m_HelpFont);
}
changeState(STATE_HELP);
break;
case 3:
changeState(STATE_CREDITS);
break;
case 4:
threadLoop = false;
break;
}
}
}
/**
* Logo画面1
* @param g Graphics
*/
protected void drawLogo1(Graphics g) {
g.setColor(255, 255, 255);
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgLogo1, (SCREEN_WIDTH - imgLogo1.getWidth()) / 2,
(SCREEN_HEIGHT - imgLogo1.getHeight()) / 2,
Graphics.TOP | Graphics.LEFT);
}
/**
* Logo画面2
* @param g Graphics
*/
protected void drawLogo2(Graphics g) {
g.setColor(255, 255, 255);
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgLogo2, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
}
/**
* 封面画面
* @param g Graphics
*/
protected void drawCover(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
m_CoverAnimation.setNextFrame();
m_CoverAnimation.paint(g, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
PieceSprite.TRANS_NONE);
}
/**
* Loading画面
* @param g Graphics
*/
protected void drawLoading(Graphics g) {
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.setColor(0);
g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.setColor(0x6f5adc);
g.fillRoundRect(0, (SCREEN_HEIGHT - FONT_HEIGHT) / 2, loadingGuage,
FONT_HEIGHT, 4, 4);
g.setColor(0x6b0584);
g.fillRoundRect(0 + 2, (SCREEN_HEIGHT - FONT_HEIGHT) / 2 + 2,
loadingGuage - 2, FONT_HEIGHT - 2, 3, 3);
g.setColor(0xFFFFFF);
g.fillRoundRect(0 + 4, (SCREEN_HEIGHT - FONT_HEIGHT) / 2 + 6,
loadingGuage - 4, FONT_HEIGHT - 16, 2, 2);
g.setColor(255, 255, 255);
g.drawString(HINT[7], SCREEN_WIDTH / 2, (SCREEN_HEIGHT - FONT_HEIGHT) / 2,
Graphics.HCENTER | Graphics.BOTTOM);
g.drawImage(imgLoading, loadingGuage, (SCREEN_HEIGHT + FONT_HEIGHT) / 2,
Graphics.BOTTOM | Graphics.LEFT);
}
/**
* 画开始菜单界面
* @param g Graphics
*/
protected void doGameMenuState(Graphics g) {
int currPosition = 0;
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
drawGameMenuAnimation(g);
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
drawSelector(MENU_GAME, g);
for (int i = 0; i < MENU_GAME.length; i++) {
setMenuItemsColor(i, g);
ToolBox.drawOutlinedText(g, m_MenuFont, MENU_GAME[i], MENU_X,
MENU_Y + (currPosition++ * MENU_GAP),
Graphics.HCENTER | Graphics.VCENTER);
}
}
}
if (bSelectKeyDown && bGameMenuAnimationOver()) {
switch (m_Position) {
case 0: //新游戏
//currentScreen = 5;
//currentRole = ROLE_NINJA;
currentScreen = 0;
currentRole = ROLE_BOY;
changeState(STATE_INIT);
break;
case 1: //载入游戏
ReadData();
changeState(STATE_INIT);
break;
case 2: //返回
changeState(STATE_MAINMENU);
break;
}
}
}
/**
* 画设置菜单界面
* @param g Graphics
*/
protected void doOptionsMenuState(Graphics g) {
int currPosition = 0;
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
drawGameMenuAnimation(g);
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
drawSelector(MENU_OPTIONS, g);
if (mySound.bSoundOpen) {
g.setColor(COLOR_ENABLED);
}
else {
g.setColor(COLOR_DISABLED);
}
ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[0], MENU_X,
MENU_Y + (currPosition++ * MENU_GAP),
Graphics.HCENTER | Graphics.VCENTER);
/* #1 */
if (!mySound.bSoundOpen) {
g.setColor(COLOR_ENABLED);
}
else {
g.setColor(COLOR_DISABLED);
}
ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[1], MENU_X,
MENU_Y + (currPosition++ * MENU_GAP),
Graphics.HCENTER | Graphics.VCENTER);
/* #2 */
g.setColor(COLOR_ACTIVE);
ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[2], MENU_X,
MENU_Y + (currPosition++ * MENU_GAP),
Graphics.HCENTER | Graphics.VCENTER);
}
if (bSelectKeyDown && bGameMenuAnimationOver()) {
changeState(STATE_MAINMENU);
}
}
/**
* 帮助画面
* @param g Graphics
*/
protected void doHelpState(Graphics g) {
/* configure HelpState look&feel */
g.setColor(COLOR_ACTIVE);
helpLines = m_Text.size();
helpPages = ( (m_Text.size() / HELP_LINES) * HELP_LINES >= m_Text.size()) ?
m_Text.size() / HELP_LINES :
m_Text.size() / HELP_LINES + 1;
currPage = ( (m_Position / HELP_LINES) * HELP_LINES >= m_Position) ?
m_Position / HELP_LINES + 1 : m_Position / HELP_LINES + 2;
// helpScroll = imgHelpScroll;
/* paint background */
g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
drawGameMenuAnimation(g);
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
/* paint help text lines */
for (int i = m_Position; i < helpLines; i++) {
if (i < m_Position + HELP_LINES) {
ToolBox.drawOutlinedText(g, m_HelpFont,
(String) m_Text.elementAt(i), HELP_X,
HELP_Y + ( (i - m_Position) * HELP_GAP),
Graphics.LEFT | Graphics.VCENTER);
}
}
/* paint back and counter message */
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
//#if (MOTO_E398||MOTO_V600||MOTO_C650||MOTO_V878)
//# ToolBox.drawOutlinedText(g, m_HelpFont, HINT[8],
//# SCREEN_WIDTH - HELP_BACK_X, HELP_BACK_Y,
//# Graphics.LEFT | Graphics.BOTTOM);
//# ToolBox.drawOutlinedText(g, m_HelpFont,
//# "" + currPage + "/" + helpPages, HELP_BACK_X,
//# HELP_BACK_Y, Graphics.RIGHT | Graphics.BOTTOM);
//#
//#else
imgx_selector.setAnchor(Graphics.RIGHT | Graphics.BOTTOM);
imgx_selector.drawFrame(g, 3, HELP_BACK_X, HELP_BACK_Y);
// ToolBox.drawOutlinedText(g, m_PressAnyKeyFont, MSG_BACK,
// HELP_BACK_X, HELP_BACK_Y,
// Graphics.RIGHT | Graphics.BOTTOM);
ToolBox.drawOutlinedText(g, m_PressAnyKeyFont,
"" + currPage + "/" + helpPages,
SCREEN_WIDTH - HELP_BACK_X, HELP_BACK_Y,
Graphics.LEFT | Graphics.BOTTOM);
//#endif
/* NOTE - currPosition contains now
* amount of menu titles */
/* paint menu scroll images 绘制进度条*/
int oldColor = g.getColor();
g.setColor(COLOR_GRAY);
g.fillRect(MENU_SCROLLBAR_X,
MENU_Y + (currPage - 1) * 120 / helpPages +
m_CursorSmallDIS + MENU_SCROLLBAR_CHK, 7,
120 / helpPages);
g.setColor(oldColor);
} //~end if (bSelectKeyDown==false&&bGameMenuAnimationOver())
if (bSelectKeyDown && bGameMenuAnimationOver()) {
changeState(STATE_MAINMENU);
}
}
/**
* 关于画面
* @param g Graphics
*/
protected void doCreditsState(Graphics g) {
/* paint background and credits board */
g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
Graphics.HCENTER | Graphics.VCENTER);
/* paint Game Menu Animation*/
drawGameMenuAnimation(g);
if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
g.drawImage(imgAbout, CREDITS_BOARD_X,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -