📄 firemancanvas.java
字号:
* drawMain
*
* @param g Graphics
*/
public void drawMainbg(Graphics g) {
g.drawImage(imgBg, 0, 0, Graphics.LEFT | Graphics.TOP);
g.drawImage(imgMain, 0, 0, Graphics.LEFT | Graphics.TOP);
}
private void drawClip(Graphics g, int x, int y, Image image, int clipX, int clipY, int clipWidth, int clipHeight, int rotate) { //只能用left和top画。只方型有效。长方形待修改
g.setClip(x, y, clipWidth, clipHeight);
if(rotate==0)
g.drawImage(image, x - clipX, y - clipY, 0);
else{
DirectGraphics dg=DirectUtils.getDirectGraphics(g);
switch(rotate){
case 90:
x=x-clipY;
y=y-(image.getWidth()-clipX-clipWidth);
break;
case 180:
x=x-(image.getWidth()-clipX-clipWidth);
y=y-(image.getHeight()-clipY-clipHeight);
break;
case 270:
x=x-(image.getHeight()-clipY-clipHeight);
y=y-clipX;
break;
}
dg.drawImage(image, x, y, 0,rotate);
}
g.setClip(0, 0, this.w, this.h);
}
public void drawRank(Graphics g) {
}
public void drawSetup(Graphics g) {
}
public void drawHelp(Graphics g) {
}
public void drawMenu(Graphics g) {
drawMenubg(g);
for (int i = 0; i < 6; i++) {
if (i == menuCursor) { //选中
drawClip(g, 35, i * 16 + 25, imgMenu1, 0, 101, 63, 15, 0); //选中光标条
drawClip(g, 20, i * 16 + 23, imgMenu1, 63, 86, 12, 18, 0); //小人光标
}
else {
drawClip(g, 35, i * 16 + 25, imgMenu1, 0, 86, 63, 15, 0); //未选中条
}
drawClip(g, 42, i * 16 + 26, imgMenu, 0, i * 14, 49, 13, 0); //字
}
}
public void drawMode(Graphics g) {
drawMenubg(g);
for (int i = 6; i < 8; i++) {
if (i == menuCursor) { //选中
drawClip(g, 35, i * 16 - 43, imgMenu1, 0, 101, 63, 15, 0); //选中光标条
drawClip(g, 20, i * 16 - 45, imgMenu1, 63, 86, 12, 18, 0); //小人光标
}
else {
drawClip(g, 35, i * 16 - 43, imgMenu1, 0, 86, 63, 15, 0); //未选中条
}
drawClip(g, 42, i * 16 - 42, imgMenu, 50, i * 14 - 84, 49, 13, 0); //字
}
}
public void drawMenubg(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, w, h);
}
public void drawDifficulty(Graphics g) {
drawMenubg(g);
for (int i = 8; i < 10; i++) {
if (i == menuCursor) { //选中
drawClip(g, 35, i * 16 - 75, imgMenu1, 0, 101, 63, 15, 0); //选中光标条
drawClip(g, 20, i * 16 - 77, imgMenu1, 63, 86, 12, 18, 0); //小人光标
}
else {
drawClip(g, 35, i * 16 - 75, imgMenu1, 0, 86, 63, 15, 0); //未选中条
}
drawClip(g, 42, i * 16 - 74, imgMenu, 50, i * 14 - 84, 49, 13, 0); //字
}
}
public void keyPressed(int keyCode) {
switch (engine.state) {
case Engine.MENU_MAIN: //菜单时
switch (keyCode) {
case KEY_DOWN_ARROW:
if (menuCursor == 5) {
menuCursor = 0;
}
else {
menuCursor++;
}
break;
case KEY_UP_ARROW:
if (menuCursor == 0) {
menuCursor = 5;
}
else {
menuCursor--;
}
break;
case KEY_SOFTKEY1: //主菜单按确定键
switch (menuCursor) {
case 0: //开始游戏
engine.state = Engine.MENU_MODE;
menuCursor = 6; //时间模式
engine.level = 1;
engine.score = 0;
break;
case 1: //继续游戏
break;
case 2: //排行
engine.state = Engine.MENU_RANK; //排行榜
break;
case 3: //选项
engine.state = Engine.MENU_SETUP; //选项
menuCursor = 9; //选项之声音
break;
case 4: //帮助
engine.state=Engine.MENU_HELP;
break;
case 5: //退出
engine.midlet.notifyDestroyed();
break;
}
break;
}
repaint();
break;
case Engine.MENU_RANK: //排行榜画面
if (keyCode == KEY_SOFTKEY1 || keyCode == KEY_SOFTKEY2) {
engine.state = 10; //主菜单
menuCursor = 2; //排行
}
repaint();
break;
case Engine.MENU_SETUP: //选项画面
switch (keyCode) {
case KEY_DOWN_ARROW:
if (menuCursor == 9) {
menuCursor = 10;
}
break;
case KEY_UP_ARROW:
if (menuCursor == 10) {
menuCursor = 9;
}
break;
case KEY_SOFTKEY1:
if (menuCursor == 9) {
engine.sound = !engine.sound;
}
else if (menuCursor == 10) {
engine.vibration = !engine.vibration;
}
break;
case KEY_SOFTKEY2:
engine.state = 10; //主菜单
menuCursor = 3;
break;
}
repaint();
break;
case Engine.MENU_HELP: //帮助画面
repaint();
break;
case Engine.MENU_MODE: //游戏模式选择
switch (keyCode) {
case KEY_DOWN_ARROW:
if (menuCursor == 6) {
menuCursor = 7;
}
break;
case KEY_UP_ARROW:
if (menuCursor == 7) {
menuCursor = 6;
}
break;
case KEY_SOFTKEY1:
if (menuCursor == 6) {
engine.mode = 0;
}
else if (menuCursor == 7) {
engine.mode = 1;
}
menuCursor = 8;//简单模式
engine.state = Engine.MENU_DIFFICULTY; //难度选择
break;
case KEY_SOFTKEY2:
engine.state = Engine.MENU_MAIN; //主菜单
menuCursor = 0; //开始游戏
break;
}
repaint();
break;
case Engine.MENU_DIFFICULTY: //游戏难度选择
switch (keyCode) {
case KEY_DOWN_ARROW:
if (menuCursor == 8) {
menuCursor = 9;
}
repaint();
break;
case KEY_UP_ARROW:
if (menuCursor == 9) {
menuCursor = 8;
}
repaint();
break;
case KEY_SOFTKEY1:
if (menuCursor == 8) {
engine.difficulty = 0;
}
else if (menuCursor == 9) {
engine.difficulty = 1;
}
engine.state = Engine.INIT_GAME;
break;
case KEY_SOFTKEY2:
engine.state = 14; //模式选择
menuCursor = 6; //简单模式
repaint();
break;
}
break;
default:
engine.keyPressed(keyCode);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -