[SCRATCH3] 貪吃蛇

URL Link //n.sfs.tw/13770

2019-11-14 16:06:35 By Axer

貪吃蛇很多平台都有的經典游戲,玩法是隨著時間或是吃果子後,身體會變長,玩家不但要能吃果子,還要操控角色避免撞到邊緣,還有避免撞到自己。

所以玩到後來因為蛇身越來越長,速度變快,難度越來越高,直到死亡為止。

此程式有點複雜,主要是由均一平台上的教學文件[1]來改良,變得更好玩。

學習重點及節數

迴圈、變數、分身、自訂積木、音效、計時器

6~8小時

說明

按下綠旗後,角色會不斷移動,要巧妙的操作以避免撞到邊緣和自己。

撞到自己或邊緣遊戲結束。

活得越久及吃的果子越多,分數越高。

隨著時間增加,分數會遞減,分數降為負值則死亡,所以必需不斷的吃果子補充。

遊戲畫面


隨著果子吃越多,速度變快


撞到自己的尾巴就死了

角色製作

有三個角色:蛇頭、果子和外框。

蛇頭

造型有幾個重點

1. 最好趨近圓形,以免轉向時來個甩尾,不要太大。

2. 方向朝右和轉向一致

3. 旋轉中心要對到中心點,如下圖角色的圓心對到灰色十字。

4. 可多繪製一個死亡的造型

果子

隨便畫

外框

遊戲的撞到邊緣判定是用是否部到外框物件來決定(也可以用邊界座標來判斷)。這樣的好處是可以做出華麗的邊框,讓遊戲更好玩。

在左上角放置分數和給玩家看的數值

程式--蛇頭

蛇頭的方向控制

出界的判斷

變數及初始化變數

有四個變數,在程式開始時初始其值

利用計時器隨時間扣分

為了妨止使用者一直不吃果子,隨時間分數遞減,分數小於0遊戲結束

角色死掉時的處理

設定一個死掉的廣播事件,當觸發死亡條件時,再廣播執行這個事件。

注意有特別將移動速度設為0

死掉時切換到「遊戲結束」背景然後用變數顯示結果

產生尾巴

利用分身來產生尾巴,加一個判斷移動速度,以免角色已經死了,但還是不停的產生分身。

碰到自己的尾巴死掉

選擇自己身體的主要顏色,例如粉紅

 

程式--果子

果子單純的碰到蛇頭換位置及計分,其中為了避免果子出現的位置掉到邊框處,多了一個迴圈處理

每吃5個果子速度增加

程式--外框

外框只需要定位開場位置及播放開場音效

 

完整積木

蛇頭

果子、外框

如上

程式下載

貪食舌.sb3

參考資料

[1] 均一 https://www.junyiacademy.org/computing/root/scratch-3-m01/v/ZN2PDoH7FUA