📄 layertestmidlet.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.game.*;
public class LayerTestMIDlet extends MIDlet implements CommandListener {
private Command exit;
private MyCanvas canvas;
public LayerTestMIDlet() {//创建命令,画布
exit = new Command("Exit", Command.EXIT, 1);
canvas = new MyCanvas();
canvas.addCommand(exit);
canvas.setCommandListener(this);
}
protected void startApp() {//显示画布并开始游戏执行
new Thread(canvas).start();
Display.getDisplay(this).setCurrent(canvas);
}
protected void pauseApp() {
}
protected void destroyApp(boolean p1) {
}
public void commandAction(Command c, Displayable d) {
if (c == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
class MyCanvas extends GameCanvas implements Runnable{
private Graphics g;
private TiledLayer backLayer;//图层
private Image backImage;
private int counter = 0;//计数器
private int index = 0;//保存动画分块的序号
//记录图层backLayer的每个单元对应的图像块序号
private byte[][] backMap = {
{ 1, -1, -1, -1, -1 },//序号-1为动态分块
{ 1, 1, 1, 1, 1 },
{ 4, 4, 1, 1, 1},
{ 4, 4, 4, 2, 1},
{ 4, 4, 4, 4, 4 }
};
public MyCanvas() {
super(true);
g = getGraphics();//得到作图对象
try {//装入图像
backImage = Image.createImage("/layer.png");
} catch (Exception e) {
}
//创建图层,分块大小为:35×35,单元格数量为:5×5
backLayer = new TiledLayer(5, 5, backImage, 35, 35);
//创建动画分块,index 应该返回 -1
index = backLayer.createAnimatedTile(6);
for (int y = 0; y < 5; y++) {//逐个设置每个单元格的图像,标记为0的单元格表示不处理
for (int x = 0; x < 5; x++)
backLayer.setCell(x, y, backMap[y][x]);
}
}
public void squareMove() {//直接修改单元格内的图像
backLayer.setCell(3, 3, counter % 2 + 2);
}
public void cloudMove() {//修改动态分块中的图像来达到动画效果
if (counter % 2 == 0)
backLayer.setAnimatedTile(index, 5);
else
backLayer.setAnimatedTile(index, 6);
}
public void run(){//不断地做动画效果
while(true){
move();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//执行游戏功能
public void move() {
counter++;//增加计数器
cloudMove();//显示云彩的动画效果
squareMove();//显示方块的动画效果
//将图层绘制的脱机屏幕上
backLayer.paint(g);
//刷新屏幕
flushGraphics();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -