📄 sprite4_movespritecanvas.java
字号:
import java.io.IOException;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
public class Sprite4_MoveSpriteCanvas extends GameCanvas implements Runnable{
private int drawX, drawY;
private Sprite spr, spl, spu, spd;
private Image pic;
private int[] right = {9, 10, 11};//向右走的图片数组
private int[] left = {3, 4, 5};//向左走的图片数组
private int[] up = {6, 7, 8};//向上走的图片数组
private int[] down = {0, 1, 2};//向下走的图片数组
private Graphics g;
private int act = 3;//判断行动方向
public Sprite4_MoveSpriteCanvas() {
super(true);
// X,Y初值
drawX = this.getWidth()/2 - 32;
drawY = this.getHeight()/2;
try {
pic = Image.createImage("/man.png");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 分配精灵图片
spr = new Sprite(pic, 32, 48);
spr.setFrameSequence(right);
spl = new Sprite(pic, 32, 48);
spl.setFrameSequence(left);
spu = new Sprite(pic, 32, 48);
spu.setFrameSequence(up);
spd = new Sprite(pic, 32, 48);
spd.setFrameSequence(down);
g = this.getGraphics();
Thread t = new Thread(this);
t.start();
// TODO Auto-generated constructor stub
}
public void run() {
while(true)
{
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
move();//行动判定方法
draw(g);//图象判定方法
}
// TODO Auto-generated method stub
}
private void draw(Graphics g2) {
// 清屏
g.setColor(255, 255, 255);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
// 向上走
if(act == 0)
{
spd.setFrame(0);
spd.setPosition(drawX, drawY);
spd.paint(g);
flushGraphics();
}
if(act == 1)
{
spu.nextFrame();
spu.setPosition(drawX, drawY);
spu.paint(g);
flushGraphics();
}
// 向下走
if(act == 2)
{
spd.nextFrame();
spd.setPosition(drawX, drawY);
spd.paint(g);
flushGraphics();
}
// 向右走
if(act == 3)
{
spr.nextFrame();
spr.setPosition(drawX, drawY);
spr.paint(g);
flushGraphics();
}
// 向左走
if(act == 4)
{
spl.nextFrame();
spl.setPosition(drawX, drawY);
spl.paint(g);
flushGraphics();
}
// TODO Auto-generated method stub
}
private void move() {
int code = this.getKeyStates();
if((code & UP_PRESSED) != 0)
{
act = 1;
if(drawY <= 0)
{
drawY = 0;
}
else
{
drawY = drawY - 5;
}
}
else if((code & DOWN_PRESSED) != 0)
{
act = 2;
if(drawY + 48 >= this.getHeight())
{
drawY = this.getHeight() - 48;
}
else
{
drawY = drawY + 5;
}
}
else if((code & RIGHT_PRESSED) != 0)
{
act = 3;
if(drawX + 32 >= this.getWidth())
{
drawX = this.getWidth() - 32;
}
else
{
drawX = drawX + 5;
}
}
else if((code & LEFT_PRESSED) != 0)
{
act = 4;
if(drawX <= 0)
{
drawX = 0;
}
else
{
drawX = drawX - 5;
}
}else{
act=0;
}
// TODO Auto-generated method stub
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -