2019年3月19日 星期二

Scratch 3.0 (15)猴子吃香蕉

猴子接香蕉是香蕉由上往下掉,猴子永遠在下方底線的位置上接住香蕉算得分的一種遊戲。


此遊戲無需背景
前景至少兩個角色
角色1:猴子,負責左右移動,檢查是否時間已到
角色2:香蕉,負責由上網下掉落,檢查是否碰到猴子(成功),或是碰到地板(失敗)
角色3:顯示訊息,若無此角色直接用說來表示也可以。


首先先完成簡單版
https://scratch.mit.edu/projects/295121377/

角色1的程式碼
猴子左右移動有一種簡單的方式就是 將x設定為鼠標的x
另外一種方式是用按鍵,向右按 x改變5,向左按x改變-5
主程式則是不斷的循環
角色2是香蕉有兩件事情要做
1. 從上往下掉
2. 檢查是否碰到猴子

這兩件事情可以同時,分別用重複迴圈進行

當y座標小於-170時,就碰到地板了,此時就算是漏接了。

進階版,計算漏接,如果漏接>4,遊戲結束,計算時間60秒,時間到也結束,結束後顯示分數,分數=吃到香蕉數*2-漏接
範例:https://scratch.mit.edu/projects/295167573/

即遊戲結束時可以得到如下的畫面
主角1增加了兩個全域的變數,漏接和時間
遊戲的結束條件改變成了「漏接>4」或「時間到」兩者之一,加上初始值得設定,改成如下:
角色2則比較不好改了,乍看之下,好像只要增加碰到邊緣就增加漏接的次數就好,事實上這樣的方式,同一次漏接往往會不斷的增加數字,所以增加了一個角色內變數loop去做判斷,程式碼變成如下:

y設為119是必要的,如果沒有這一積木,0.02秒內就會不斷地被計算碰到。

創作版: 試試看作如下的改變
1. 將角色2複製成很多個
2. 增加一個變數,計算目前顯示中的香蕉有幾個
3. 如果沒有任何一個,就不要等待1-3秒,而是直接出現。
4. 角色2改用分身,底下是使用分身的參考
5. 遊戲結束後可以重玩
6. 可以有下一關,掉落速度加快或是讓角色移動變慢
7. 可以有下一關,掉落不同的東西,但是碰到要扣分

沒有留言:

張貼留言