?? pigcanvas.java
字號(hào):
// 程序名PigCanvas.java
// 一個(gè)簡單的Canvas的子類和一個(gè)Pig類
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class PigCanvas extends Canvas {
private UI_Low9 midlet;
private Pig pig; //聲明一個(gè)Pig對(duì)象
public PigCanvas(UI_Low9 midlet ){
this.midlet = midlet;
pig = new Pig();
pig.changeVelocity(3); //設(shè)置pig的行進(jìn)速度,以象素為單位
}
protected void paint( Graphics g ){
//g.translate(getWidth()/2,getHeight()/2);//設(shè)置當(dāng)前坐標(biāo)系統(tǒng)
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 : { //響應(yīng)游戲動(dòng)作UP,執(zhí)行一定的動(dòng)作后然后發(fā)出重畫請(qǐng)求
pig.goUp();
repaint();
break;
}
case DOWN : { //響應(yīng)游戲動(dòng)作DOWN,執(zhí)行一定的動(dòng)作后然后發(fā)出重畫請(qǐng)求
pig.goDown();
repaint();
break;
}
case LEFT : { //響應(yīng)游戲動(dòng)作LEFT,執(zhí)行一定的動(dòng)作后然后發(fā)出重畫請(qǐng)求
pig.goLeft();
repaint();
break;
}
case RIGHT : { //響應(yīng)游戲動(dòng)作RIGHT,執(zhí)行一定的動(dòng)作后然后發(fā)出重畫請(qǐng)求
pig.goRight();
repaint();
break;
}
default : { //按其它按鍵,退出應(yīng)用程序
midlet.exit(); //exit()類方法MIDlet的子類中實(shí)現(xiàn),用于終止程序
}
}
}
}
class Pig { //一個(gè)Pig類,用作動(dòng)畫中運(yùn)動(dòng)的對(duì)象,這里實(shí)現(xiàn)盡量簡單,目的是為了讀者理解
private int x,y; //用作絕對(duì)坐標(biāo)
private int velocity; //物體行進(jìn)速度,單位為象素
private Image image;
Pig() { //構(gòu)造函數(shù),并設(shè)置初始值
x = 0; //設(shè)置當(dāng)前絕對(duì)坐標(biāo)為(0,0)
y = 0;
velocity = 1; //設(shè)置速度為1
image = Image.createImage(22,22);
Graphics g = image.getGraphics();
g.setColor(0x0000FF00);
g.fillRect(0,0,22,22); //在當(dāng)前坐標(biāo)系統(tǒng)中繪制
g.setColor(0x00000000);
g.fillRect(2,2,22,22); //在當(dāng)前坐標(biāo)系統(tǒng)中繪制
g.setColor(0x00F9D3D3);
g.fillRect(0,0,20,20);
}
public void changeVelocity(int v) { //用于設(shè)置物體行進(jìn)速度
if ((v >=0) & (v <10)) {
velocity = v;
}
}
public void pigAt(int x,int y) { //用于設(shè)置物體的絕對(duì)坐標(biāo)
this.x = x;
this.y = y;
}
public void goUp() { //如果物體向上運(yùn)動(dòng),絕對(duì)坐標(biāo)y減少一個(gè)單位(velocity)
y -= velocity;
}
public void goDown() { //如果物體向下運(yùn)動(dòng),絕對(duì)坐標(biāo)y增加一個(gè)單位(velocity)
y += velocity;
}
public void goLeft() { //如果物體向左運(yùn)動(dòng),絕對(duì)坐標(biāo)x減少一個(gè)單位(velocity)
x -= velocity;
}
public void goRight() { //如果物體向右運(yùn)動(dòng),絕對(duì)坐標(biāo)x增加一個(gè)單位(velocity)
x += velocity;
}
public void paint(Graphics g) {
g.translate(x - g.getTranslateX(), y - g.getTranslateY());//設(shè)置當(dāng)前坐標(biāo)系統(tǒng)
g.drawImage(image,0,0,g.TOP | g.LEFT);
g.translate(x - g.getTranslateX(), y - g.getTranslateY());//改回原來的坐標(biāo)系統(tǒng)
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -