---
# System prepended metadata

title: '捲耳貓 Scratch 教學內容 [5]：星際迷航'

---

# Scratch 05: 星際迷航

###### tags: `捲耳貓兒童程式創作學苑`, `Scratch`

📅 Update date (v1): 2024-02-18, step. 1~11
📅 Update date (v2): 2024-02-25, step. 12~17

製作遊戲前，請先到以下連結下載今天會用到的素材 🐱
　　　　⬇️⬇️⬇️
[【飛機素材（按此造訪）】](https://drive.google.com/drive/folders/10F3zqE9TrLn6h7NlUfTB385Cn4obxrp5?usp=drive_link)

## 1. 設定背景
使用 Scratch 內建的【Galaxy】
　
![1](https://hackmd.io/_uploads/SydlvZ136.png)

 
## 2. 上傳飛機圖片
![2](https://hackmd.io/_uploads/HyAgPbJ2a.png)


## 3. 上傳飛彈圖片
![3](https://hackmd.io/_uploads/BkQbwWynp.png)


## 4. 方向鍵：前／後／左／右 對應的事件
![4. 飛機前後左右](https://hackmd.io/_uploads/rJKbDb13p.png)


## 5. 建立兩個 Variables: X 和 Y
X 和 Y 代表【飛機的公開位置】
　
![5. 飛機的【公開位置】X, Y](https://hackmd.io/_uploads/BJ6bPbJ26.png)


## 6. 遊戲開始時，設定飛機的位置
![6. 遊戲開始時，設定飛機的位置](https://hackmd.io/_uploads/BybGDWy26.png)


## 7. 當飛機移動時，改變飛機的公開位置
新增【藍 & 紅色色箭頭】指的 8 個積木
紅色箭頭：Update 飛機的公開位置
藍色箭頭：傳送指令【follow me】（讓飛彈知道）
　
![7. 當飛機移動時，改變飛機的公開位置：新增【藍 & 紅色色箭頭】指的 8 個積木](https://hackmd.io/_uploads/rk0h9-J26.png)


## 8. 飛彈／遊戲開始時，先藏起來
![8. 飛彈／遊戲開始時，先藏起來](https://hackmd.io/_uploads/Sy9GDby2a.png)


## 9. 飛彈／跟隨飛機
當收到【follow me】指令
讓【飛彈】移動到【飛機的公開位置 (X, Y)】
　
![9. 飛彈／當收到【follow me】指令，移動到【飛機的公開位置 (X, Y)】](https://hackmd.io/_uploads/S1kQPZJhp.png)


## 10. 飛彈／發射飛彈（每次一枚）
當【按下空白鍵】
顯示、發射飛彈、消失、回到飛機的公開位置 
　
![10. 飛彈／當【按下空白鍵】，顯示、發射飛彈、消失、回到飛機的公開位置](https://hackmd.io/_uploads/r12mvZyn6.png)
　
![1](https://hackmd.io/_uploads/ryPBoWJ36.gif)


## 11. 飛彈／連續發射飛彈
改造一下 Step 10. 的程式
只要利用 Create clone 
並在 repeat 20 的迴圈中偵測【是否重複按下空白鍵】
連續發射飛彈的功能便輕鬆完成了
　
![11. 飛彈／連續發射飛彈](https://hackmd.io/_uploads/BkBEP-y36.png)
　
![2](https://hackmd.io/_uploads/ryCBs-yh6.gif)

## 12. 上傳／敵機1號、敵機2號、敵方飛彈1、敵方飛彈2
* 敵機1號：Size 可改為 50
* 敵機2號：Size 可改為 40
* 敵方飛彈1：Size 可改為 20
* 敵方飛彈2：Size 可改為 20

## 13. 敵機1號／往下移動，並通知敵方飛彈1發射
在 My Blocks 新增【隨機左右移動】的程式區塊（block）
- 如果：ｘ＞０（敵機在右邊）
讓【敵機1號】移動到【左邊】
左邊 ➡️ i.e. 自己的 x +【-80~-40 的隨機數字】
- 否則：ｘ≦０（敵機在左邊或中間）
讓【敵機1號】移動到【右邊】
　
![image](https://hackmd.io/_uploads/H15GtXd2a.png)

在 Variables 新增變數（variable）:【敵1X】和【敵1Y】
並在 Events 的 broadcast 新增【敵機1號進攻】
![image](https://hackmd.io/_uploads/rJQdOmd3a.png)

## 14. 敵方飛彈1／跟隨，發射，連續發射
### 敵方飛彈1／跟隨
遊戲開始時，跟著【敵機一號的位置】（x: 敵1X, y: 敵1Y）
![image](https://hackmd.io/_uploads/ryZCi7d2T.png)

### 敵方飛彈1／發射
【敵機1號】會用【broadcast **敵機1號進攻**】通知【敵方飛彈1】發射（往下移動）
因此，收到【**敵機1號進攻**】的訊息時
連續發射六枚飛彈
　– 重複 6 輪：飛彈 **往下移動**
　– 再複製一個新的飛彈（下方【連續發射】會提到如何寫）
![image](https://hackmd.io/_uploads/SJQh3Q_h6.png)

### 敵方飛彈1／連續發射
當原本的飛彈已經往下移動 15（change y by -15）
複製出來的新飛彈才剛出來（x: 敵1X, y: 敵1Y-75）
因此視覺上，會有看起來「連續發射」的樣子
![image](https://hackmd.io/_uploads/r1EekVd2T.png)

## 15. 敵方飛彈1／重複遊玩
新增一個 block: 取名為【攻擊】
![15](https://hackmd.io/_uploads/H1uE-EO2p.png)
　
原本的【遊戲開始（當綠旗被按下）】
改為重複攻擊 3 次
如此一來
當敵機1號消失後（第一次、第二次的 repeat 結束之後）
又可以從 **再次最上方出現**、往下移動並攻擊
![image](https://hackmd.io/_uploads/BkJZM4uha.png)

## 16. 敵機2號／程式碼
為了增進遊戲體驗，設計更多敵方戰機
我們可以增加敵機2號！
　
先照搬【敵機一號】的程式碼
但要注意以下兩件事：
1) 敵1X 改為 敵2X，敵1Y 改為 敵2Y
2) 敵機1號進攻 改為 敵機2號進攻

### 16-1. 敵機2號／Block: 隨機左右移動
![image](https://hackmd.io/_uploads/HkdeVNd26.png)

### 16-2. 敵機2號／攻擊
![image](https://hackmd.io/_uploads/ryNL44d3a.png)

### 16-3. 敵機2號／玩法：三回合的攻擊
![image](https://hackmd.io/_uploads/BySB4Nd3T.png)

## 17. 敵方飛彈2／程式碼
### 17-1. 敵方飛彈2／跟隨
![image](https://hackmd.io/_uploads/HJS1BNdnT.png)

### 17-2. 敵方飛彈2／發射飛彈
![image](https://hackmd.io/_uploads/rkilBNOnT.png)

### 17-3. 敵方飛彈2／重複發射飛彈
![image](https://hackmd.io/_uploads/Bk1qHVO2T.png)

### 18. 結果展示
![A](https://hackmd.io/_uploads/S1TtcEuh6.gif)
