# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up