⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c0843f1d1e9a001b1a15912de8b02075

📁 《J2ME实用教程》 源文件下载 本书没有仅仅局限于J2ME单机游戏的开发
💻
字号:

import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class GameMenu extends MIDlet {
	protected void startApp() throws MIDletStateChangeException {
		Display display = Display.getDisplay(this);
		display.setCurrent(new GameCanvas(this));
	}
	protected void pauseApp() {
	}
	protected void destroyApp(boolean arg0)
 throws MIDletStateChangeException {
	}
	public void exit() {
		try {
			destroyApp(false);
		} catch (MIDletStateChangeException e) {
			e.printStackTrace();
		}
		notifyDestroyed();
	}
	class GameCanvas extends Canvas {
		int y = 60;
		GameMenu game;
		int action = 0;//判断光标的位置
		Image menu, back, help;
		 GameCanvas(GameMenu gameMenu) {
			game = gameMenu;
			try {
				menu = Image.createImage("/res/menu.png");
				back = Image.createImage("/res/back.png");
				help = Image.createImage("/res/help.png");
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		protected void paint(Graphics g){
			g.setColor(255, 255, 255);
			g.fillRect(0, 0, getWidth(), getHeight());
			g.setColor(0, 0, 0);
			if (action == 0) {//如果action=0,画菜单
				paintMenu(g);
			} else if (action == 1) {//如果action=1,画游戏
				paintGame(g);
			} else if (action == 2) {//如果action=2,画高分
				paintRecord(g);
			} else if (action == 3) {//如果action=3,画帮助
				paintHelp(g);
			}
		}
		public void paintMenu(Graphics g) {//画菜单
			g.drawImage(menu, 0, 0, Graphics.TOP | Graphics.LEFT);
			g.drawRect(60, y, 35, 15);
			g.drawString("新游戏", 60, 60, Graphics.TOP | Graphics.LEFT);
			g.drawString("高分榜", 60, 80, Graphics.TOP | Graphics.LEFT);
			g.drawString("帮助", 60, 100, Graphics.TOP | Graphics.LEFT);
			g.drawString("退出", 60, 120, Graphics.TOP | Graphics.LEFT);
		}
		public void paintHelp(Graphics g) {//画帮助
			g.drawImage(help, 0, 0, Graphics.TOP | Graphics.LEFT);
		}
		public void paintGame(Graphics g) {//画游戏
			g.drawImage(back, 0, 0, Graphics.TOP | Graphics.LEFT);
		}
		public void paintRecord(Graphics g) {//画高分榜
			g.drawImage(back, 0, 0, Graphics.TOP | Graphics.LEFT);
			g.drawString("第一名:小王", 60, 50, Graphics.TOP | Graphics.LEFT);
			g.drawString("第二名:小张", 60, 70, Graphics.TOP | Graphics.LEFT);
			g.drawString("第三名:小李", 60, 90, Graphics.TOP | Graphics.LEFT);
		}
		/*
		 * (non-Javadoc)
		 * 
		 * @see javax.microedition.lcdui.Displayable#keyPressed(int)
		 */
		protected void keyPressed(int arg0) {
			if (action == 0) {
				if ( arg0 == -2 ||arg0 == 56) {
					if (y == 120) {
						y = 60;
					} else {
						y = y + 20;
					}
				} else if (arg0 == -1 || arg0 == 50) {
					if (y == 60) {
						y = 120;
					} else {
						y = y - 20;
					}
				} else if (arg0 == -5 || arg0 == 53) {
					if (y == 120) {//选中退出时,按5键退出
						game.exit();
					} 
			else if (y == 100) {//选中帮助时,按5键让action=3,代表玩家选中帮助
						action = 3;
					} 
			else if (y == 80) {//选中高分榜时,按5键让action=2,代表玩家选中高分	榜
						action = 2;
					} else if (y == 60) {//选中新游戏时,按5键让action=1,代表玩家选中新游戏
						action = 1;
					}
				}
			} 
			else {
				action = 0;
			}
			repaint();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -