您的位置:首页 > 编程语言 > Java开发

J2ME手机游戏基本框架

2009-10-31 19:34 225 查看
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();

 }

 

 

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息