mygamecanvas.java~73~
来自「这是一个关于Java 2 Mobile Edition 手机游戏开发的部分源码,」· JAVA~73~ 代码 · 共 92 行
JAVA~73~
92 行
package untitled4;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
public class MyGameCanvas extends GameCanvas implements Runnable {
private Image backgd , house ;
private LayerManager layers;
private TiledLayer tiles;
private Sprite sprite;
private int xd,yd;
private Thread thread;
public MyGameCanvas() {
super(true);
layers = new LayerManager();
setupTheme();
xd = getWidth()/2;
yd = getHeight();
}
private void setupTheme() {
try {
backgd = Image.createImage("/untitled4/desert_02.png");
house = Image.createImage("/untitled4/Animal59.png");
sprite = new Sprite(house,24,32);
sprite.setFrame(1);
layers.append(sprite);
sprite.move(getWidth()/2,getHeight()-32);
tiles = new TiledLayer(50, 10, backgd, 80, 80);
//填充一些背景图
tiles.fillCells(0,0,9,7,3);
//随机设置场景
tiles.setCell(0,0,5);
layers.append(tiles);
}
catch(Exception e) {
e.printStackTrace();
}
}
public void run() {
Graphics g = getGraphics();
while (true) {
int keyState = getKeyStates();
updateSprite(keyState);
layers.paint(g,0,0);
flushGraphics();
try {
thread.sleep(20);
}
catch(Exception e) { e.printStackTrace(); }
}
}
protected void showNotify() {
thread = new Thread(this);
thread.start();
}
private void updateSprite(int keyState) {
if ((keyState & UP_PRESSED) != 0) {
sprite.setFrame(1);
sprite.move(0,-5);
yd-=5;
}
if ((keyState & DOWN_PRESSED) != 0) {
sprite.setFrame(1);
sprite.move(0,5);
yd+=5;
}
if ((keyState & LEFT_PRESSED) != 0) {
sprite.setFrame(10);
sprite.move(-5,0);
xd-=5;
}
if ((keyState & RIGHT_PRESSED) != 0) {
sprite.setFrame(4);
sprite.move(5,0);
xd+=5;
}
layers.setViewWindow(xd,yd,getWidth(),getHeight());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?