📄 thunderbolt.java
字号:
package thunder.bolt;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class thunderBolt extends MIDlet implements CommandListener,ItemStateListener {
private Display display;
private Command cmdOption;
private Command cmdOk;
private Command cmdBack;
private Command cmdExit;
private Command quitCmd;
private Command pauseCmd;
private Form maxLeveForm;
private Gauge gauge;
private List list;
private int leveList = 0;
public int speed = 0;
private ThunderBoltAct tbact;
private thunderDB tdb;
private String[] imageNames = {"开始游戏","最高分","游戏速度","游戏说明","关于"};
public thunderBolt() {
display = Display.getDisplay(this);
cmdOption = new Command("操作",Command.SCREEN,1);
cmdOk = new Command("确定",Command.OK,2);
cmdBack = new Command("返回",Command.SCREEN,1);
cmdExit = new Command("退出",Command.EXIT,1);
setupImageList();
tdb = new thunderDB();
}
private void setupImageList() {
if(list==null) {
list = new List("雷电游戏",List.IMPLICIT);
list.addCommand(cmdExit);
list.addCommand(cmdOption);
list.setCommandListener(this);
int lenImage = imageNames.length;
for(int i=0;i<lenImage;i++) {
list.append(imageNames[i],null);
}
}
}
public void startApp() {
display.setCurrent(list);
}
public void pauseApp() {}
public void destroyApp(boolean uncon) {
}
public void commandAction(Command c,Displayable d) {
if(c==List.SELECT_COMMAND) {
leveList = list.getSelectedIndex();
if(leveList==4) display.setCurrent(genAbout());
if(leveList==3) display.setCurrent(getGaugeForm());
if(leveList==2) display.setCurrent(getSpeed());
if(leveList==1) display.setCurrent(genMaxLeve());
if(leveList==0) display.setCurrent(getGanvas());
}else if(c==cmdOption) {
leveList = list.getSelectedIndex();
if(leveList==4) display.setCurrent(genAbout());
if(leveList==3) display.setCurrent(getGaugeForm());
if(leveList==2) display.setCurrent(getSpeed());
if(leveList==1) display.setCurrent(genMaxLeve());
if(leveList==0) display.setCurrent(getGanvas());
}else if(c==cmdBack) {
display.setCurrent(list);
}else if(c==cmdExit) {
destroyApp(false);
notifyDestroyed();
}else if(c==quitCmd) {
if(tbact!=null) {
if(tdb.compareRecordStore(tbact.getKillPoint()))
display.setCurrent(genMaxLeve());
else
display.setCurrent(list);
tbact.setDestroy();
tbact = null;
}
}else if(c==pauseCmd) {
if(tbact!=null) {
if(tbact.isDie()) {
tbact.setDie(false);
}else{
tbact.setDie(true);
}
}
}
}
private Alert genAbout() {
Alert alert = new Alert("关于游戏");
alert.setString("2002 - 2004\nEmail: ");
alert.setTimeout(Alert.FOREVER);
return alert;
}
private Canvas genMaxLeve() {
maxLeveCanvas mLC = new maxLeveCanvas(tdb.getRecordStoreData());
mLC.addCommand(cmdOk);
mLC.addCommand(cmdBack);
mLC.setCommandListener(this);
return mLC;
}
private Canvas getGanvas() {
if(tbact==null) {
tbact = new ThunderBoltAct();
tbact.setSpeed(this.speed);
quitCmd = new Command("退出",Command.EXIT,2);
pauseCmd = new Command("暂停",Command.EXIT,1);
tbact.addCommand(pauseCmd);
tbact.addCommand(quitCmd);
tbact.setCommandListener(this);
}
return tbact;
}
private Alert getGaugeForm() {
Alert alert = new Alert("游戏说明");
alert.setString(" 此游戏是彩屏空战游戏,可用" +
"方向键控制我机的移动," +
"也可以用 2键(向上), 4键(向左), " +
"6键(向右), 8键(向下), 5键(发射) " +
"控制,按(#)键可以清除所有敌机");
alert.setTimeout(Alert.FOREVER);
return alert;
}
private Form getSpeed() {
if(tbact!=null) this.speed = tbact.getSpeed();
Form form = new Form("游戏速度");
gauge = new Gauge("速度值:",true,6,speed);
gauge.setValue(this.speed);
form.append(gauge);
form.addCommand(cmdBack);
form.setCommandListener(this);
form.setItemStateListener(this);
return form;
}
public void itemStateChanged(Item item) {
Gauge ga = (Gauge)item;
gauge.setValue(ga.getValue());
this.speed = gauge.getValue();
}
class maxLeveCanvas extends Canvas {
private String iMax = "0";
private Image maxImage;
public maxLeveCanvas(String iMax) {
this.iMax = iMax;
try {
maxImage = Image.createImage("/icons/max.png");
}catch(Exception e) {}
}
public void paint(Graphics g) {
g.setColor(145,213,175);
g.fillRect(0,0,100,100);
g.setColor(0,47,94);
g.drawString("最高分数",1,0,Graphics.LEFT|Graphics.TOP);
g.setColor(0,0,64);
g.drawLine(0,15,100,15);
g.drawLine(0,16,100,16);
g.setColor(255,0,0);
g.setFont(Font.getFont(64,2,16));
g.drawImage(maxImage,5,40,Graphics.LEFT|Graphics.TOP);
g.drawString(iMax + " 分",50,40,Graphics.LEFT|Graphics.TOP);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -