📄 tomadventurecanvas.java
字号:
status = RUNNING;
}
background.paint(g);
for(int i=0;i<mapstage[stage-1][0][2]*mapstage[stage-1][0][3];i++)
{
map[i].paint(g);
}
for(int i=0;i<itemstage[stage-1].length;i++)
{
item[i].paint(g);
}
tom.paint(g);
break;
}
}
public void run()
{
while (true)
{
try
{
Thread.sleep(60);
}
catch (InterruptedException ex)
{
}
repaint();
System.gc();
}
}
////////////////////////////////按键处理/////////////////////////////////////
public void keyPressed(int keycode)
{
switch (status)
{
case BBMF_LOGO:
break;
case GAME_LOGO:
// System.out.println("ddddsss");
// logo.imgbbmflogo = null;
// logo.imggamelogo = null;
// logo = null;
System.gc();
status = MAIN_MENU;
break;
case MAIN_MENU:
break;
case SUB_MENU:
break;
case RUNNING:
//System.out.println(keycode);
if(STAGE_LOSE == true)
{
timecount = 0;
STAGE_LOSE = false;
imglose = null;
System.gc();
}
else if(STAGE_WIN == true)
{
timecount = 0;
STAGE_WIN = false;
imgwin = null;
System.gc();
}
else
{
switch (keycode)
{
case KEY_LEFT_SOFTKEY:
status = SUB_MENU;
display.setCurrent(this);
repaint();
break;
case KEY_RIGHT_SOFTKEY:
repaint();
break;
case KEY_PAUSE:
if (tom.status != Tom.FALL_LEFT &&
tom.status != Tom.FALL_RIGHT)
{
omapx = mapx;
omapy = mapy;
status = PAUSE;
display.setCurrent(this);
}
repaint();
break;
case KEY_UP:
case KEY_NUM2:
if (mapy - 3 >= 0)
{
mapy = mapy - 3;
}
repaint();
break;
case KEY_DOWN:
case KEY_NUM8:
if (mapy + 3 <= maph - viewh)
{
mapy = mapy + 3;
}
repaint();
break;
case KEY_LEFT:
case KEY_NUM4:
if (tom.status == Tom.LEFT ||
tom.status == Tom.RIGHT ||
tom.status == Tom.HIT_LEFT ||
tom.status == Tom.HIT_RIGHT)
{
tom.status = Tom.GO_LEFT;
}
else if (tom.status == Tom.FALL_LEFT ||
tom.status == Tom.JUMP_LEFT)
{
tom.direct = Tom.LEFT; //下落时控制方向
}
else if (tom.status == Tom.FALL_RIGHT ||
tom.status == Tom.JUMP_RIGHT)
{
tom.direct = Tom.LEFT;
}
repaint();
break;
case KEY_RIGHT:
case KEY_NUM6:
if (tom.status == Tom.LEFT ||
tom.status == Tom.RIGHT ||
tom.status == Tom.HIT_LEFT ||
tom.status == Tom.HIT_RIGHT)
{
tom.status = Tom.GO_RIGHT;
}
else if (tom.status == Tom.FALL_RIGHT ||
tom.status == Tom.JUMP_RIGHT)
{
tom.direct = Tom.RIGHT;
}
else if (tom.status == Tom.FALL_LEFT ||
tom.status == Tom.JUMP_LEFT)
{
tom.direct = Tom.RIGHT;
}
repaint();
break;
case KEY_NUM1:
if (tom.status != Tom.FALL_LEFT &&
tom.status != Tom.FALL_RIGHT)
{
tom.status = Tom.JUMP_LEFT;
}
break;
case KEY_NUM3:
if (tom.status != Tom.FALL_LEFT &&
tom.status != Tom.FALL_RIGHT)
{
tom.status = Tom.JUMP_RIGHT;
}
break;
case KEY_NUM5:
if (tom.status == Tom.LEFT)
{
tom.status = Tom.HIT_LEFT;
}
else if (tom.status == Tom.RIGHT)
{
tom.status = Tom.HIT_RIGHT;
}
break;
case KEY_NUM0:
if (tom.status == Tom.LEFT)
{
tom.status = Tom.DRILL_LEFT;
}
else if (tom.status == Tom.RIGHT)
{
tom.status = Tom.DRILL_RIGHT;
}
break;
case KEY_NUM9:
if (tom.status == Tom.LEFT)
{
tom.status = Tom.JUMPHIT_LEFT;
}
else if (tom.status == Tom.RIGHT)
{
tom.status = Tom.JUMPHIT_RIGHT;
}
break;
}
}
break;
case PAUSE:
switch (keycode)
{
case KEY_LEFT_SOFTKEY:
status = SUB_MENU;
display.setCurrent(this);
repaint();
break;
case KEY_RIGHT_SOFTKEY:
repaint();
break;
case KEY_PAUSE:
mapx = omapx;
mapy = omapy;
status = RUNNING;
display.setCurrent(this);
repaint();
break;
case KEY_UP:
case KEY_NUM2:
pause = PAUSE_UP;
repaint();
break;
case KEY_DOWN:
case KEY_NUM8:
pause = PAUSE_DOWN;
repaint();
break;
case KEY_LEFT:
case KEY_NUM4:
pause = PAUSE_LEFT;
repaint();
break;
case KEY_RIGHT:
case KEY_NUM6:
pause = PAUSE_RIGHT;
repaint();
break;
}
break;
}
repaint();
System.gc();
}
///////////////////////////////释放按键处理//////////////////////////////////
public void keyReleased(int keycode)
{
switch (status)
{
case RUNNING:
switch(keycode)
{
case KEY_LEFT:
case KEY_NUM4:
if(tom.status == Tom.GO_LEFT)
{
tom.status = Tom.LEFT;
}
tom.direct = 0;
break;
case KEY_RIGHT:
case KEY_NUM6:
if(tom.status == Tom.GO_RIGHT)
{
tom.status = Tom.RIGHT;
}
tom.direct = 0;
break;
}
break;
case LEFT_MOVE:
switch(keycode)
{
case KEY_LEFT:
case KEY_NUM4:
if(tom.status == Tom.GO_LEFT)
{
tom.status = Tom.LEFT;
}
break;
}
break;
case RIGHT_MOVE:
switch(keycode)
{
case KEY_RIGHT:
case KEY_NUM6:
if(tom.status == Tom.GO_RIGHT)
{
tom.status = Tom.RIGHT;
}
break;
}
break;
case PAUSE:
switch(keycode)
{
case KEY_UP:
case KEY_NUM2:
case KEY_DOWN:
case KEY_NUM8:
case KEY_LEFT:
case KEY_NUM4:
case KEY_RIGHT:
case KEY_NUM6:
pause = PAUSE_NORMAL;
break;
}
break;
}
}
public void commandAction(Command c, Displayable d)
{
//主菜单部分
if (d == listmainmenu && c == listmainmenu.SELECT_COMMAND)
{
mainmenuselected = listmainmenu.getSelectedIndex();
switch (listmainmenu.getSelectedIndex())
{
case 0: //开始游戏
initStage();
status = RUNNING;
display.setCurrent(this);
repaint();
break;
case 1: //读取进度
break;
case 2: //帮助
break;
case 3: //排行榜
break;
case 4: //音效设置
break;
case 5: //厂商资讯
break;
case 6: //退出游戏
status = BBMF_LOGO;
midlet.destroyApp(true);
midlet.notifyDestroyed();
break;
}
listmainmenu = null;
System.gc();
}
//游戏中菜单部分
else if (d == listsubmenu && c == listsubmenu.SELECT_COMMAND)
{
submenuselected = listsubmenu.getSelectedIndex();
switch (listsubmenu.getSelectedIndex())
{
case 0: //继续游戏
status = RUNNING;
display.setCurrent(this);
repaint();
break;
case 1: //储存进度
break;
case 2: //返回主菜单
status = MAIN_MENU;
display.setCurrent(this);
repaint();
break;
case 3: //退出游戏
status = BBMF_LOGO;
midlet.destroyApp(true);
midlet.notifyDestroyed();
break;
}
listsubmenu = null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -