levelcanvas.java~96~
来自「j2me实现的手机拼图游戏」· JAVA~96~ 代码 · 共 105 行
JAVA~96~
105 行
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{
Thread.sleep(delay);
}catch(InterruptedException e){
//
}
}
}
protected void keyPressed(int key){
if(key == 42){
midlet.showMenuCanvas();
stoped = true;
Thread.currentThread().interrupt();
}
}
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 + =
减小字号Ctrl + -
显示快捷键?