📄 menucanvas.java
字号:
import com.nokia.mid.ui.FullCanvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Image;
public class MenuCanvas extends FullCanvas
{
//游戏中所指向的菜单类型 0:主菜单 1:游戏中菜单 2:游戏模式菜单
private byte canvasFlg = 0;
private DragonSoul inc;
//菜单的索引值
private int selectedIndex;
private int width;
private Image title = null;
private Image rect = null;
private String menu[][] = {
{
"开始", "设置", "帮助", "关于", "退出"
}, {
"继续", "帮助", "主菜单"
}, {
"训练模式", "对战模式", "故事模式", "生存模式"
}
};
// private String button[][] = {
// {
// "选择", ""
// }, {
// "选择", "返回"
// }, {
// "选择", "返回"
// }
// };
/**
* 菜单类构造函数
* @param inc DragonSoul,入口类对象
*/
public MenuCanvas(DragonSoul inc) {
this.inc = inc;
try {
title = Image.createImage("/title.png");
rect = Image.createImage("/rec.png");
} catch (Exception e) {}
}
/**
* 菜单类初始化
* @param byte0 byte,菜单类型
*/
public void initliza(byte byte0)
{
canvasFlg = byte0;
selectedIndex = 0;
if(byte0 < 2) {
//GC = getWidth() / 5;
width = getWidth() / 3 + 5;
} else {
//GC = getWidth() / 6;
width = getWidth() / 4 + 10;
}
}
/**
* 设定菜单的索引值
* @param i1 int,菜单的索引值
*/
public void setSelectedIndex(int i1) {
selectedIndex = i1;
}
protected void showNotify() {
inc.loadLights();
}
/**
* 压下按键事件响应
* @param i1 int, 按键代码
*/
protected void keyPressed(int i1)
{
if( i1 == -1) {
selectedIndex = selectedIndex <= 0 ? menu[canvasFlg].length - 1 : selectedIndex - 1;
repaint();
serviceRepaints();
return;
}
if( i1 == -2) {
selectedIndex = selectedIndex >= menu[canvasFlg].length - 1 ? 0 : selectedIndex + 1;
repaint();
serviceRepaints();
return;
}
if(i1 == 53 || i1 == -6 || i1 == getKeyCode(8)) {
executeMenu(i1);
//System.gc();
}
if(i1 == -7) {
if(canvasFlg == 1)
{
selectedIndex = 0;
executeMenu(i1);
//System.gc();
}
if(canvasFlg == 2)
{
executeMenu(i1);
//System.gc();
}
}
}
/**
* 绘制菜单选项
* @param g1 Graphics
*/
protected void paint(Graphics g1) {
int width = getWidth();
int height = getHeight();
g1.setClip(0, 0, width, height);
g1.setFont(Font.getFont(64, 1, 8));
if (canvasFlg == 0) {
g1.drawImage(title, 0, 0, 0);
g1.drawImage(rect, width/2, 115, Graphics.HCENTER | Graphics.TOP);
for(int j1 = 0; j1 < menu[canvasFlg].length; j1++) {
g1.setColor(0x993300);
g1.drawString(menu[canvasFlg][selectedIndex], width/2, 155, Graphics.HCENTER | Graphics.TOP);
}
} else {
g1.setColor(0xffffff);
g1.fillRect(0, 0, width, height);
for(int i1 = 0; i1 < (width - 1)/ inc.menuBk.getWidth() + 1; i1++)
g1.drawImage(inc.menuBk, i1 * inc.menuBk.getWidth(), 0, 0x10 | 0x4);
for(int j1 = 0; j1 < menu[canvasFlg].length; j1++) {
int l1 = 27 + 17 * (j1 + 1);
g1.setColor(0);
g1.drawString(menu[canvasFlg][j1], this.width + 6, l1, 0x20 | 0x4);
g1.setColor(0x993300);
g1.drawString(menu[canvasFlg][j1], (this.width + 6) - 1, l1 - 1, 0x20 | 0x4);
}
int k1 = (30 + 17 * (selectedIndex + 1)) - inc.fistImage.getHeight() / 1;
g1.drawImage(inc.fistImage, this.width - 12, k1 - 4, 0x10 | 0x4);
// g1.setClip(0, 0, width, height);
// g1.drawImage(inc.width, 0, height, 0x20 | 0x4);
// g1.drawImage(inc._fldif, width, height, 0x20 | 0x8);
}
}
/**
* 执行菜单命令
* @param _fldvoid int,按键代码
*/
public void executeMenu(int _fldvoid)
{
if (_fldvoid == -7) {
if(canvasFlg == 1)
inc.backToGame();
else
if(canvasFlg == 2)
inc.backToMenu();
} else if (canvasFlg == 0)
switch(selectedIndex)
{
case 0: // '\0'
inc.initModeMenu();
break;
case 1: // '\001'
inc.initSettingMenu();
break;
case 2: // '\002'
inc.bGameHelp = false;
inc.initHelp1Menu();
break;
case 3: // '\003'
inc.initHelp2Menu();
break;
case 4: // '\004'
{
LogoCanvas o = new LogoCanvas(DragonSoul.inc, 3);
o.startThr();
Display.getDisplay(DragonSoul.inc).setCurrent(o);
//DragonSoul.exitApp();
}
break;
}
else if (canvasFlg == 1)
switch(selectedIndex)
{
case 0: // '\0'
inc.backToGame();
break;
case 1: // '\001'
inc.pauseGame();
break;
case 2: // '\002'
inc.backToMenu();
break;
}
else if(canvasFlg == 2) {
inc.setN(3);
inc.saveIndex(selectedIndex);
inc.initPlayer();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -