# Scratch - 射擊遊戲 ###### tags: `scratch` `七年級` ## 範例1 - 簡易射擊遊戲 > 首先我們設計一個射擊遊戲來了解scratch是如何運用  ___ ## 射擊遊戲物件架構 + 主角: + 主角需要能夠上下左右移動 + 子彈 + 滑鼠點擊後,被主角要能射擊子彈出去。 + 敵人 + 包括地圖上要一直產生敵人 + 敵人移動方式 + 敵人被子彈打中後會消失。 + 得分 + 子彈擊敗敵人後可以增加分數。 + 失敗與勝利條件 + 敵人太多會失敗 + 分數到達某種條件就勝利通關 ___ ## 1. 主角部分 :::info + 1. 本遊戲主角會率先於其他物件出現在舞台上,所以觸發開始的事件`當綠色旗子被點擊`可以設計放在主角程式區中。 + 2. 我們需要定位主角開始區域,一般建議是放在舞台中心點(x,y)=(0,0) + 3. 控制主角移動的方式是: + 一直請scratch偵測有無上下左右方向的按鍵被按下, + 如果被按下就往對應的上下左右移動 + 積木選擇 + 選擇控制中的`重複無限次` `如果...那麼` + 選擇偵測中的`某個鍵被按下`,放入前面控制積木`如果...那麼` + 動作中的 `x改變...` `y改變...` 00  ___ + 4. 人物相對於舞台可能太大,你可以調整主角大小 + 5. 主角走動時可以切換圖片`造型換成下個`來讓它移動時有動作改變的樣子 + 6. 可以設計主角左右移動時會左右面對對應方向,來讓角色表現更自然  ___ ::: ___ ## 2. 射擊子彈部分 :::info + 1.我們可以先設計一個子彈在場上隱藏,當發射子彈時讓他產生分身並出現在主角身上射擊出去,便可以產生主角射擊子彈的效果。 + 2.子彈本尊部分 + 1. 遊戲開始時需要在場上,並且本尊`隱藏`起來 + 2. 設定子彈`尺寸`跟`位置` + 3. 重複無限次偵測滑鼠點擊時產生分身(意義為產生子彈)  ___ + 3.子彈分身部分 + 1.分身產生時 + a. 要顯示 + b. 定位為主角身上 + c. 面朝當時滑鼠方向 + 2. 射擊 + a. 面對某個方向準備射出 + b. 重複移動直到射擊到遊戲地圖的邊緣 + c. 碰到邊緣後子彈分身消失(刪除)  ___ ::: ___ ## 3. 產生怪物部分 :::info + 1.我們可以先設計一個怪物在場上隱藏,如此只要持續讓他產生分身隨機出現在場上移動, 便可達到持續產生新怪物的效果。 + 2.怪物本尊部分 + 本尊必須`隱藏`在場上 + 可以設定怪物的尺寸 + `重複無限次` 透過`建立自己分身`來產生怪物,每次產生怪物間隔為`1秒`  ___ + 3. 怪物分身部分 + 持續在隨機位置產生分身 + 由於本尊預設為隱藏,所以分身產生時為隱藏,必須顯示出來 + 重複無限次 + 移動方式為隨機朝著一個方向移動,移動一段距離 + 假設分身碰到邊緣或被子彈射擊到時會跳出無限次循環 + 跳出循環後,怪物必須消失,所以要將分身刪除。  ::: ___ ## 4. 設定得分與遊戲失敗條件 :::info + 1.建立兩個新變數,`得分`與`怪物數量`  + 2.建立完成後,會在變數區顯示出來  ___ + 2. 遊戲失敗部分 + 在怪物區塊選擇新的旗子來建立新的積木 + 首先初始遊戲開始時,分數跟怪物數量的值必須要歸0 + 重複無限次 + 失敗條件偵測:怪物數量大於某個數則失敗 + 失敗時顯示一隻大蝙蝠提示失敗 + 所以產生一個大分身 + `顯示`並且定位於原點`(0,0)` + 說出遊戲失敗,持續`10秒` + 停止全部程式動作  ___ + 3. 調整剛剛的怪物`分身產生`與`分身刪除` 流程來設定 `怪物數量`與`得分` + 當分身產生時,變數`怪物數量`增加1 + 當觸發碰到邊緣或者碰到球時 + 怪物數量-1 + 如果剛剛是碰到球,則得分加`10分`  ::: ___ ## 5. 設計主角血量功能與失敗背景 :::info + 1.建立新變數 : `主角血量`  ___ + 2.建立新背景,用於遊戲失敗時切換 + 點擊下面圓形藍色圖示來新增背景,選個能夠好寫上字的背景。  + + 看到下方圖片左上角有個紅色框框,先將你的`失敗背景`命名好,請記得你`失敗背景`的名子,此處我直接將`失敗背景`命名為"失敗背景" + 點擊紅色框框中的`T`,再點擊圖片來打字上去,表示遊戲失敗 + 打完後就完成了新背景的設定  ___ + 3. 失敗條件更新 + ==**改變原本蝙蝠區域的失敗積木**== + 首先切換到蝙蝠造型的程式頁面,來找到之前控制遊戲失敗的積木  + 因為新增了變數`主角血量`,所以遊戲開始時要設置`主角血量`為5 + 下圖關卡變數設定可以先不用管,只是給以後的功能做備用 + 因為新增了變數`主角血量`,所以失敗偵測要多個`主角血量低於1`, 可以透過綠色的`運算積木`來去設定完成 + 失敗改成`切換為失敗背景`,用外觀中的背景切換積木完成。請注意要選到你自己剛剛取的失敗背景名子 + 等待1秒給背景顯示緩衝時間,之後做遊戲失敗後的處理,即停止全部動作  ___ + 4. 主角血量控制的設計 > 對遊戲主角的血量狀態進行設計 > 當碰到蝙蝠要扣血 > 遊戲一般扣血後有一段無敵時間要設置 > 扣血後主角要有一些變化來讓你知道損血了 + 首先切換到主角積木程式區域 + 新增一個旗子 + 當旗子後,重複循環有沒有碰到蝙蝠,請去`偵測`積木選擇`碰到...`積木來設定 + 如果有碰到蝙蝠 + 角色扣血時要變色來讓玩家了解到自己扣血了,所以要選擇`外觀積木`去控制主角的變色。 + 由於主角扣血要有段無敵時間,以防止系統偵測太快導致連續扣血,所以我們必須用控制積木`等待1秒`。 + 1秒過後讓主角變色回來,所以剛剛`外觀積木`改變多少顏色就要扣掉或者加回來,取決於你先前的設計。 + 最後因為主角碰到怪物要扣血,所以我們用`變數積木`來設計減少血量。  ::: ___ ## 6. 補品設計 :::info >補品設計的邏輯為: >需要在場上一直隨機位置出現,當角色碰到時能幫助角色增加血量 + 1.設計補品本尊 + 首先選取一個新造型當作場上 + 與之前子彈跟怪物相同,我們要幫本尊設定好`定位`、`隱藏`、`尺寸` + 之後`重複無限次`, + 你也可以選`重複直到`配合綠色`運算積木`設定條件 請遊戲結束時停止建立分身 + 有了主角血量這變數後,遊戲結束就是`主角血量低於1`(用變數積木設計)時 + 之後可以設置新變數來控制遊戲失敗,目前暫時以`血量低於1`代替 + 建立補品本尊的分身 + 補品不能一直出現,所以要等個幾秒再進行下次循環  + 補品分身出現時,要`定位到隨機位置`並且`顯示`出來 + 補品會在原地一直等待,直到主角碰到他,代表主角吃到補品 + 主角吃到補品後血量會增加,請用`變數積木`設計主角血量的改變 + 之後`分身刪除`補品在場上消失 +  :::
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.