📄 movecanvas.java
字号:
package examples.ch6;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MoveCanvas extends Canvas{
private MoveCanvasMIDlet midlet;
private MoveObj moveObj;
public MoveCanvas(MoveCanvasMIDlet midlet){
this.midlet=midlet;
moveObj=new MoveObj();
moveObj.changeVelocity(3);
moveObj.MoveObjAt(getWidth()/2,getHeight()/2);
}
protected void paint(Graphics g){
g.setColor(0,255,0);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(255,0,0);
moveObj.paint(g);
}
protected void keyPressed(int keyCode){
switch(getGameAction(keyCode))
{
case UP:
{
moveObj.goUp();
repaint();
break;
}
case DOWN:
{
moveObj.goDown();
repaint();
break;
}
case LEFT:
{
moveObj.goLeft();
repaint();
break;
}
case RIGHT:
{
moveObj.goRight();
repaint();
break;
}
default:{
midlet.exit();
}
}
}
}
class MoveObj{
private int x,y;
private int velocity;
MoveObj(){
x=0;
y=0;
velocity=1;
}
public void changeVelocity(int v){
if((v>=0)&(v<10)){
velocity=v;
}
}
public void MoveObjAt(int x,int y){
this.x=x;
this.y=y;
}
public void goUp()
{
y-=velocity;
}
public void goDown()
{
y+=velocity;
}
public void goLeft()
{
x-=velocity;
}
public void goRight()
{
x+=velocity;
}
public void paint(Graphics g){
g.translate(x-g.getTranslateX(),y-g.getTranslateY());
int previousColor=g.getColor();
g.setColor(0x00000000);
g.fillRect(2,2,22,22);
g.setColor(0x00FF0000);
g.fillRect(0,0,20,20);
g.setColor(previousColor);
g.translate(x-g.getTranslateX(),y-g.getTranslateY());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -