📄 backcanvas.java
字号:
/***************************************************
* 程序文件名称: BackCanvas.java
* 功能:用图像贴片组合成图像
***************************************************/
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class BackCanvas extends GameCanvas implements Runnable {
// Game Loop runs when isPlay is true
private boolean isPlay;
// 定义线程休眠常数
private long delay;
// 屏幕宽度
private int width;
// 屏幕高度
private int height;
//定义图层管理
private LayerManager layerManager;
// 定义贴片
private TiledLayer tiledBackground;
// 初始化
public BackCanvas() {
super(true);
width = getWidth();
height = getHeight();
delay = 20;
try{ tiledBackground = initBackground();}
catch(Exception e){ }
layerManager = new LayerManager();
layerManager.append(tiledBackground);
}
// 启动线程
public void start() {
isPlay = true;
Thread t = new Thread(this);
(见教材)
}
public void stop() {
isPlay = false;
}
// Main Game Loop
public void run() {
Graphics g = getGraphics();
while (isPlay == true) {
(见教材)
try {
Thread.sleep(delay);
}
catch (InterruptedException ie) {
}
}
}
// Method to Handle User Inputs
private void input() {
// no inputs
}
// 显示由图像贴片组合成的图像
private void drawScreen(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x0000ff);
layerManager.paint(g, 0, 0);
flushGraphics();
}
//用图像贴片组合成图像
private TiledLayer initBackground() throws Exception {
//图像贴片
Image tileImages = Image.createImage("/back.png");
//用排列成10行、10列的32×32像素的图像贴片组成图像
TiledLayer tiledLayer = new TiledLayer(10, 10, tileImages, 32, 32);
//定义与背景图像相对应的数组
int[] map =
{ 5, 1, 1, 4, 1, 1, 1, 1, 1, 6,
5, 1, 3, 1, 1, 3, 1, 1, 1, 6,
5, 1, 2, 1, 1, 2, 1, 1, 1, 6,
5, 1, 2, 3, 1, 2, 1, 1, 1, 6,
5, 1, 4, 2, 1, 2, 1, 1, 1, 6,
5, 1, 1, 4, 1, 2, 1, 1, 1, 6,
5, 1, 1, 1, 1, 4, 1, 1, 1, 6,
5, 1, 1, 1, 1, 1, 1, 1, 1, 6,
5, 1, 1, 1, 1, 1, 1, 1, 1, 6,
5, 1, 1, 1, 1, 1, 1, 1, 1, 6 };
//将编号与数组元素数值相对应的贴片分配到数组里面
for (int i = 0; i < map.length; i++) {
int column = i % 10;
int row = (i - column) / 10;
tiledLayer.setCell(column, row, map[i]);
}
return tiledLayer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -