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

📄 gamedisplayable.java

📁 JAVAME手机RPG游戏设计最终演示代码
💻 JAVA
字号:
import javax.microedition.lcdui.*;
public class GameDisplayable extends Canvas  implements Runnable {
  private Map myMap;//地图
  private Thread myThread = new Thread(this); //建立线程
  private boolean bGamePause;//是否暂停游戏
  private boolean bKeyPressed;//判断是否一直按着键
  private int myKeyCode;//保存按键盘数值的变量
  public GameDisplayable() {
    Data.ScreenWidth=getWidth();
    Data.ScreenHeight=getHeight();
    myMap = new Map();
    myThread.start();//启动线程
  }
  protected void paint(Graphics g) {
    g.setColor(0xffffff);
    g.fillRect(0,0,getWidth(),getHeight());

    myMap.drawMap(g);
  }
  /**
   * 游戏主循环
   */
  public void run() {
    while (!bGamePause) {
      //处理游戏事件
      try {
        myThread.sleep(30); //线程延时30ms
      }
      catch (InterruptedException ex) {
        ex.printStackTrace();
      }
      if(bKeyPressed&&!myMap.isBRunEvent()){//当键连续按着时
       myMap.keyEvent(0,myKeyCode);//第一个参数0代表主角
     }
      repaint(); //刷新画面(重绘)
    }
  }
  /**
   * keyPressed 按键事件
   * @param keyCode int 按键值
   * @todo Implement this javax.microedition.lcdui.Canvas method
   */
  protected void keyPressed(int keyCode) {
    if (keyCode == Data.MYKEY_NUM5 || keyCode == Data.MYKEY_FIRE) {
      myMap.attack(0); //攻击
    }else{
      myKeyCode = keyCode;
      bKeyPressed = true; //开始按下键
    }
  }
  /**
   * keyReleased 释放按键
   * @param keyCode int
   * @todo Implement this javax.microedition.lcdui.Canvas method
   */
  protected void keyReleased(int keyCode) {
    bKeyPressed=false;//释放键
//     if (keyCode != Data.MYKEY_NUM5 && keyCode != Data.MYKEY_FIRE) {
//        myMap.keyRelease();
//     }

  }
}

⌨️ 快捷键说明

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