📄 mycanvas.java
字号:
package src;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
public abstract class MyCanvas extends Canvas implements Runnable {
protected MIDlet mid;
protected Image buffer;//定义缓冲区
protected Graphics g;//--缓冲区画笔
static public int canvasW,canvasH;//定义屏幕宽高变量
boolean is_up,is_down,is_left,is_right,is_fire;
public MyCanvas(MIDlet mid){
this.mid = mid;
setFullScreenMode(true);
canvasW = this.getWidth();//取得屏幕宽
canvasH = this.getHeight();//取得屏幕高
// 根据屏幕宽高取得缓冲区大小
buffer = Image.createImage(canvasW,canvasH);
g = buffer.getGraphics();//取得缓冲区画笔
}
protected void keyPressed(int key) {
switch(this.getGameAction(key)){
case UP:
is_up = true;
break;
case DOWN:
is_down = true;
break;
case LEFT:
is_left = true;
break;
case RIGHT:
is_right = true;
break;
case FIRE:
is_fire = true;
break;
}
}
protected void keyReleased(int key) {
switch(this.getGameAction(key)){
case UP:
is_up = false;
break;
case DOWN:
is_down = false;
break;
case LEFT:
is_left = false;
break;
case RIGHT:
is_right = false;
break;
case FIRE:
is_fire = false;
break;
}
}
protected void exit(){
mid.notifyDestroyed();
}
protected abstract void myPaint();
protected abstract void upData();
protected abstract void keepKey();
protected void paint(Graphics arg0) {
arg0.drawImage(buffer, 0, 0, Graphics.LEFT|Graphics.TOP);
}
public void run() {
while(true){
long time = System.currentTimeMillis();
keepKey();
upData();
myPaint();
repaint();
time = System.currentTimeMillis() - time;
if(time < 40){
try {
Thread.sleep(40 - time);
} catch (InterruptedException e) {
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -