一、基礎語法三要素
暫時無法在飛書文檔外展示此內容
🔑 黃金法則?:每個變量都要聲明類型!
二、程序邏輯控制(游戲行為核心)
- 條件判斷:if-else - “岔路口選擇”
// 撿到金幣邏輯
if (isTouching(Coin.class)) { // 如果碰到金幣
score += 1; // 分數+1
removeTouching(Coin.class); // 刪除金幣
} else { // 否則
move(); // 繼續前進
} - 循環結構:for - “重復做N次”
// 生成3個敵人
for (int i=0; i<3; i++) {
getWorld().addObject(new Enemy(), 100, 50*i);
}
三、面向對象編程(OOP)核心概念
🧩 三大特性圖解
graph TB
A[類Class] -->|設計圖| B[對象Object]
A -->|繼承| C[子類Subclass]
B -->|封裝| D[方法Method]
[圖片]
-
類與對象:?樂高說明書 vs 拼好的模型
// 定義怪物類(說明書)
class Monster extends Actor {
private int hp = 50; // 封裝血量// 行為:碰到子彈掉血
public void act() {
if (isTouching(Bullet.class)) {
hp -= 10; // 減血
}
}
}
// 創建具體怪物(模型)
Monster zombie = new Monster();
2. 繼承:?子類獲得超能力
class FlyingMonster extends Monster { // 繼承Monster
public void fly() { // 新增飛行能力
setLocation(getX(), getY()-5);
}
}
四、Greenfoot專屬技術核心
🕹? 游戲開發四步法
- 創建World?(舞臺)
public class GameWorld extends World {
public GameWorld() {
super(800, 600, 1); // 寬800px, 高600px
addObject(new Player(), 100, 300);
}
} - 定義Actor行為?(角色行動)
public void act() {
checkKeyPress(); // 檢測按鍵
checkCollision(); // 碰撞檢測
} - 交互檢測?(碰撞/按鍵)
// 按空格發射子彈
if(Greenfoot.isKeyDown(“space”)) {
getWorld().addObject(new Bullet(), getX(), getY());
} - 游戲狀態管理
// 血量歸零游戲結束
if (hp <= 0) {
Greenfoot.playSound(“game_over.wav”);
Greenfoot.stop(); // 停止游戲
}
五、實用代碼片段庫
🎮 鍵盤控制角色移動
public void act() {
if (Greenfoot.isKeyDown(“left”)) setRotation(180);
if (Greenfoot.isKeyDown(“right”)) setRotation(0);
if (Greenfoot.isKeyDown(“up”)) setRotation(270);
if (Greenfoot.isKeyDown(“down”)) setRotation(90);
move(3); // 持續移動
}
💥 碰撞檢測與處理
// 碰到敵人掉血
Actor enemy = getOneIntersectingObject(Enemy.class);
if(enemy != null) {
hp -= 20;
setImage(“hurt.png”); // 顯示受傷動畫
}
? 學習路徑建議
- 基礎階段?:先掌握 變量 → 條件判斷 → 循環
- 進階階段?:理解 類/對象 → 封裝 → 繼承
- 項目實戰?:用Greenfoot實現 → [鍵盤移動] → [發射子彈] → [計分系統]
? 效率技巧?:
在Greenfoot中按 Ctrl + 點擊類名 查看源碼,
用 右擊場景 → 運行參數 調試游戲速度!