📄 levelcanvas.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.*;
public class LevelCanvas extends GameCanvas implements Runnable {
private PinTu midlet;
private Image dirImg;
private Sprite leftSprite,rightSprite,menuSprite;
private int selectedIndex = 0;
private int dirY,dirX1,dirX2;
private final int WIDTH = getWidth(),HEIGHT = getHeight(),MIDLECENTER = Graphics.HCENTER | Graphics.VCENTER;
protected boolean stoped = false;
private int delay = 120;
private int levelNum = 0;
private Thread t;
public LevelCanvas(PinTu m) {
super(true);
midlet = m;
levelNum = midlet.levelArray.length;
setFullScreenMode(true);
}
protected void start(){
try{
dirImg = Image.createImage(midlet.imgPath + "dir.png");
}catch(IOException e){
System.out.println("Image loaded error!");
}
leftSprite = new Sprite(dirImg,10,10);
rightSprite = new Sprite(leftSprite);
rightSprite.setTransform(Sprite.TRANS_MIRROR);
leftSprite.setPosition(WIDTH/2 - 40 ,HEIGHT/2);
rightSprite.setPosition(WIDTH/2 + 40 - rightSprite.getWidth(),HEIGHT/2);
menuSprite = new Sprite(leftSprite);
menuSprite.setTransform(Sprite.TRANS_ROT270);
menuSprite.setPosition(5,HEIGHT -15);
t = new Thread(this);
t.start();
}
public void run(){
while(!stoped){
draw();
update();
try{
t.sleep(delay);
}catch(InterruptedException e){
//
}
}
}
protected void keyPressed(int key){
if(key == 42){
midlet.showMenuCanvas();
stoped = true;
}
}
private void update(){
int keyState = getKeyStates();
if((keyState & LEFT_PRESSED)!=0)
selectedIndex --;
if((keyState & RIGHT_PRESSED)!=0)
selectedIndex ++;
if((keyState & FIRE_PRESSED)!=0){
midlet.selectedLevelIndex = selectedIndex;
midlet.showMenuCanvas();
}
if(selectedIndex <0)
selectedIndex = levelNum -1;
if(selectedIndex >= levelNum)
selectedIndex = 0;
leftSprite.nextFrame();
rightSprite.nextFrame();
menuSprite.nextFrame();
}
private void draw(){
Graphics g = getGraphics();
g.setColor(255,255,255);
g.fillRect(0,0,WIDTH,HEIGHT);
g.setColor(0x317E3D);
Font f = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
g.setFont(f);
g.drawString(midlet.levelArray[selectedIndex],WIDTH/2,HEIGHT/2-5,Graphics.HCENTER | Graphics.TOP);
leftSprite.paint(g);
rightSprite.paint(g);
menuSprite.paint(g);
flushGraphics();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -