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