📄 gamedisplayable.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 + -