📄 animationtest.java
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class AnimationTest extends MIDlet{
Display display;
MyCanvas myCanvas;
public AnimationTest(){
display = Display.getDisplay(this);
myCanvas = new MyCanvas();
}
public void startApp(){
myCanvas.start();
display.setCurrent(myCanvas);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
class MyCanvas extends Canvas implements CommandListener{
int gameAction;
Sprite sprite;
Command exitCmd;
Image offScreen;
Image[] spriteImage = new Image[3];
int interval = 300;
public MyCanvas(){
if(!isDoubleBuffered()){
offScreen = Image.createImage(getWidth(), getHeight());
}
try{
for(int i=0;i<spriteImage.length;i++){
spriteImage[i] = Image.createImage("/sprite"+i+".png");
}
}
catch(Exception ex){}
sprite = new Sprite(this, spriteImage);
exitCmd = new Command("退出", Command.EXIT, 1);
addCommand(exitCmd);
setCommandListener(this);
}
public void paint(Graphics g){
Graphics old = g;
if(offScreen != null){
g = offScreen.getGraphics();
}
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
sprite.paintSprite(g);
g.setColor(0);
g.drawString("间隔:"+interval+"ms",
10,
getHeight() - 20,
Graphics.LEFT|Graphics.TOP);
if(g != old){
old.drawImage(offScreen, 0, 0, Graphics.LEFT|Graphics.TOP);
}
}
void start(){
sprite.start();
}
public void keyPressed(int keyCode){
int gameAction = getGameAction(keyCode);
switch(gameAction){
case Canvas.LEFT:
interval -= 100;
if(interval <= 200) interval = 200;
sprite.setInverval(interval);
break;
case Canvas.RIGHT:
interval += 100;
if(interval >= 2000) interval = 2000;
sprite.setInverval(interval);
break;
}
repaint();
}
public void keyReleased(int keyCode){
}
public void keyRepeated(int keyCode){
}
public void commandAction(Command c, Displayable d){
if(c == exitCmd){
destroyApp(true);
notifyDestroyed();
}
}
}
class Sprite extends Thread{
int gameAction;
int x, y;
int width, height;
Image[] image;
MyCanvas canvas;
int index = 0;
int timeInterval;
Random random = new Random();
boolean reverse = false;
public Sprite(MyCanvas canvas, Image[] image){
super();
this.image = image;
this.canvas = canvas;
width = image[0].getWidth();
height = image[0].getHeight();
x = (canvas.getWidth()-width)/2;
y = (canvas.getHeight()-height)/2;
timeInterval = 500;
}
public void paintSprite(Graphics g){
g.drawImage(image[index], x, y, Graphics.LEFT|Graphics.TOP);
if(index == 2) reverse = true;
else if(index == 0)reverse = false;
if(reverse == false) index++;
else if(reverse == true) index--;
}
public void run(){
while(true){
canvas.repaint(x, y, width, height);
try{
Thread.sleep(timeInterval);
}
catch(Exception ex){}
}
}
public void setInverval(int interval){
timeInterval = interval;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -