📄 pigcanvas.java
字号:
// 程序名PigCanvas.java
// 一个简单的Canvas的子类和一个Pig类
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class PigCanvas extends Canvas {
private UI_Low9 midlet;
private Pig pig; //声明一个Pig对象
public PigCanvas(UI_Low9 midlet ){
this.midlet = midlet;
pig = new Pig();
pig.changeVelocity(3); //设置pig的行进速度,以象素为单位
}
protected void paint( Graphics g ){
//g.translate(getWidth()/2,getHeight()/2);//设置当前坐标系统
g.setColor(0,255,0);
g.fillRect( 0, 0, getWidth(), getHeight()); //绘制背景
pig.paint(g); //绘制Pig
}
protected void keyPressed (int keyCode) { //按键事件
switch (getGameAction(keyCode)) {
case UP : { //响应游戏动作UP,执行一定的动作后然后发出重画请求
pig.goUp();
repaint();
break;
}
case DOWN : { //响应游戏动作DOWN,执行一定的动作后然后发出重画请求
pig.goDown();
repaint();
break;
}
case LEFT : { //响应游戏动作LEFT,执行一定的动作后然后发出重画请求
pig.goLeft();
repaint();
break;
}
case RIGHT : { //响应游戏动作RIGHT,执行一定的动作后然后发出重画请求
pig.goRight();
repaint();
break;
}
default : { //按其它按键,退出应用程序
midlet.exit(); //exit()类方法MIDlet的子类中实现,用于终止程序
}
}
}
}
class Pig { //一个Pig类,用作动画中运动的对象,这里实现尽量简单,目的是为了读者理解
private int x,y; //用作绝对坐标
private int velocity; //物体行进速度,单位为象素
private Image image;
Pig() { //构造函数,并设置初始值
x = 0; //设置当前绝对坐标为(0,0)
y = 0;
velocity = 1; //设置速度为1
image = Image.createImage(22,22);
Graphics g = image.getGraphics();
g.setColor(0x0000FF00);
g.fillRect(0,0,22,22); //在当前坐标系统中绘制
g.setColor(0x00000000);
g.fillRect(2,2,22,22); //在当前坐标系统中绘制
g.setColor(0x00F9D3D3);
g.fillRect(0,0,20,20);
}
public void changeVelocity(int v) { //用于设置物体行进速度
if ((v >=0) & (v <10)) {
velocity = v;
}
}
public void pigAt(int x,int y) { //用于设置物体的绝对坐标
this.x = x;
this.y = y;
}
public void goUp() { //如果物体向上运动,绝对坐标y减少一个单位(velocity)
y -= velocity;
}
public void goDown() { //如果物体向下运动,绝对坐标y增加一个单位(velocity)
y += velocity;
}
public void goLeft() { //如果物体向左运动,绝对坐标x减少一个单位(velocity)
x -= velocity;
}
public void goRight() { //如果物体向右运动,绝对坐标x增加一个单位(velocity)
x += velocity;
}
public void paint(Graphics g) {
g.translate(x - g.getTranslateX(), y - g.getTranslateY());//设置当前坐标系统
g.drawImage(image,0,0,g.TOP | g.LEFT);
g.translate(x - g.getTranslateX(), y - g.getTranslateY());//改回原来的坐标系统
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -