📄 mysprite.java
字号:
package sprite;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
public class MySprite extends GameCanvas implements Runnable {
private static final int FRAME_WIDTH = 130;
private static final int FRAME_HEIGHT = 203;
private Sprite sprite;
private Graphics g;
private int spriteX;
private int spriteY;
protected MySprite(boolean suppressKeyEvents) {
super(suppressKeyEvents);
g = getGraphics();
initSprite();
startThread();
}
private void initSprite() {
spriteX = getWidth() / 3;
spriteY = getHeight() - FRAME_HEIGHT - 10;
try {
Image image = Image.createImage("/sprite/kid.png");
sprite = new Sprite(image, FRAME_WIDTH, FRAME_HEIGHT);
} catch (IOException e) {
e.printStackTrace();
}
sprite.setPosition(spriteX, spriteY);
}
private void startThread() {
Thread thread = new Thread(this);
thread.start();
}
public void run() {
while (true) {
move();
draw();
sleep();
}
}
private void draw() {
g.setColor(0x998877);
g.fillRect(0, 0, getWidth(), getHeight());
sprite.paint(g);
flushGraphics();
}
private void sleep() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private void move() {
System.out.println(sprite.getX());
System.out.println(sprite.getY());
System.out.println(spriteX);
System.out.println(spriteY);
System.out.println("getWidth: " + sprite.getWidth());
System.out.println("getHeight: " + sprite.getHeight());
System.out.println("befre, getRefPixelX: " + sprite.getRefPixelX());
System.out.println("befre, getRefPixelY: " + sprite.getRefPixelY());
if (spriteX > FRAME_WIDTH / 5) {
spriteX -= FRAME_WIDTH / 5;
} else {
spriteX = getWidth() - FRAME_WIDTH;
}
// 相对于当前的reference pixel
sprite.defineReferencePixel(sprite.getWidth() / 2, sprite.getHeight() / 2);
// 相对于坐标系
// sprite.setRefPixelPosition(sprite.getX() + sprite.getWidth() / 2, sprite.getY() + sprite.getHeight() / 2);
System.out.println("after, getRefPixelX: " + sprite.getRefPixelX());
System.out.println("after, getRefPixelY: " + sprite.getRefPixelY());
sprite.setPosition(spriteX, spriteY);
// sprite.setTransform(Sprite.TRANS_NONE);
// sprite.setTransform(Sprite.TRANS_MIRROR);
// sprite.setTransform(Sprite.TRANS_MIRROR_ROT90);
sprite.setTransform(Sprite.TRANS_MIRROR_ROT180);
// sprite.setTransform(Sprite.TRANS_MIRROR_ROT270);
// sprite.setTransform(Sprite.TRANS_ROT90);
// sprite.setTransform(Sprite.TRANS_ROT180);
// sprite.setTransform(Sprite.TRANS_ROT270);
sprite.nextFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -