承接上篇,背景與前景同樣用 Sprite 實作。準備背景圖(可不透明)與前景圖(必須為透明 PNG)。
public class TankGameCanvas extends GameCanvas implements Runnable {
private Sprite spritePlayer1, spriteBackground, spriteForeground;
public TankGameCanvas() {
// ... 前略 ...
try {
spritePlayer1 = new Sprite(Image.createImage("/res/img/player1.png"), 16, 16);
spriteBackground = new Sprite(Image.createImage("/res/img/bg.png"));
spriteForeground = new Sprite(Image.createImage("/res/img/fg.png"));
} catch (Exception e) { e.printStackTrace(); }
}
private void drawScreen(Graphics g) {
spriteBackground.paint(g);
spritePlayer1.setPosition(currentX, currentY);
spritePlayer1.paint(g);
spriteForeground.paint(g);
flushGraphics();
}
}
繪製順序:背景 → 玩家 → 前景。模擬器效果圖見原文。(原文含圖片)
將著手設計遊戲核心:地圖資料表示、碰撞偵測、定時器、簡易 AI 等。