public class MID extends MIDlet {
Game mygame;
Display dis=null;
public MID() {
if(dis==null){
dis=Display.getDisplay(this);
mymenu=new menu(this);
mygamemenu=new gamemenu(this);
}
dis.setCurrent(mymenu);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
}
上面是MIDlet文件的内容,实际上要写的只是定义一个继承于GameCanvas游戏类。并显示出来
下面是一个基本的游戏到底是怎么运作的
public class Game extends GameCanvas implements Runnable{//首先继承于GameCanvas 扩展Runnable以开启一个新的线程
boolean running;//控制游戏输入,逻辑 画面时候继续更新的开关
private int mytiem=60;//游戏多少毫秒进行一次输入 逻辑 画面的运输和更新
protected Game() {
super(true);//实现父类的构造函数
Start();//开始游戏线程的代码在这个方法里
}
public void Start(){
running=true;//将游戏开关设置为开
Thread thread=new Thread(this);
thread.start(); / /这段代码执行后系统会调用run函数中的代码
}
public void run() {
long t1=System.currentTimeMillis();
long t2 //定义两个long控制时间
while(true){
t2=System.currentTimeMillis();
if(t2-t1>mytiem){
t1=System.currentTimeMillis();
Input(); //处理游戏中的输入事件
Logic(); //控制游戏的各种逻辑
Paint(); //按照要求绘画出游戏画面
}
}
}
public void Stop(){
running=false;
}
private void Input(){
int keystate=getKeyStates(); //
if((keyState&GameCanvas.UP_PRESSED)!=0) {//当这个式子成立时代表 上键被按下 这GameCanvas
//里代表方向键的上 和数字键的 2
//这里输入当 上 被按下时要处理的事件 其他的按钮在eclipse里用 GameCanvas.就能自己显示同样
}
}
private void Logic(){
///处理游戏自身逻辑
}
private void Paint(){
Graphics g=getGraphics();//g可以理解成是一个画布的缓存 将要显示的东西都写在g里 通过flushGraphics()函数一次显示
flushGraphics();
}
}