📄 testmovecanvas.java
字号:
/* 本示例为移动物体 */
import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
import javax.microedition.media.control.*;
public class TestMoveCanvas extends Canvas
{
private TestMove midlet;
private MoveObj moveObj;
private Image image;
private boolean begin;
public TestMoveCanvas(TestMove midlet)
{
this.midlet=midlet;
moveObj=new MoveObj();
//设置移动速度,以像素为单位
moveObj.changeVelocity(3);
//设置物体初始位置(居中)
moveObj.MoveObjAt(getWidth()/2,getHeight()/2);
//加载作为封面首页图片
try{ image=Image.createImage("/icons/zsm.jpg"); }
catch(IOException ioe){ ioe.printStackTrace(); }
begin=false;
}
public void paint(Graphics g)
{
/* 判断是否点击了"开始游戏",
* 若点击了"开始游戏",则调用moveObj类的paint( )方法,
* 否则,则显示封面图片。
*/
if (begin) //begin的值由主类Zsm的commandAction()控制。
{
g.setColor(0,255,255); //设置为淡蓝色
g.fillRect(0,0,getWidth(),getHeight());
moveObj.paint(g); //绘制移动对象
}
else
{ // 绘制封面图片
g.drawImage(image,getWidth()/2,getHeight()/2,
Graphics.VCENTER|Graphics.HCENTER);
}
}
public void beginning( boolean b )
{
//控制游戏开始,该方法由主类TestMove的commandAction()调用。
begin = b;
repaint(); //起刷新画面作用
}
protected void keyPressed(int keyCode) //按键事件
{
if(begin) //该条件用于防止尚未点击"开始游戏",就触发键盘。
{
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 : { }
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -