前些日子CC哥出去度假了,所以有兩週沒有更帖,希望大家原諒了。

最近跟幾個小朋友溝通,都反饋說CC哥講得太快了,尤其是上一個帖子內容好多,一下子吸收不了。CC哥在這裏接受批評,後面的幾節課,CC哥將調整教學方式,會把編程的內容簡化,但是把編程思路,方法和每個指令的用法講透徹,至於編成什麼樣子的程序,就看小朋友們的發明創造。

遊戲構想(需求分析):

第一:場景和角色的確定

我們想編一個什麼樣的遊戲呢?我們想創建一個海底世界,那海底世界裏有什麼呢?有魚,各種各樣的魚,咱們搞簡單點,假設就有三種:有鯊魚,有小魚,還有海星。

第二:任務

那這三種角色的關係是什麼呢?鯊魚肯定是要喫小魚,小魚就只能喫海星了。我們的遊戲主人公就是小魚吧,那麼我們需要喫小魚才生活,但是還不能被鯊魚喫掉。所以我們的任務就是喫最多的小魚,還不能碰到鯊魚。

算法設計(1):

控制小魚的自由移動。

控制角色的移動有很多種方法,之前的講座裏也提到過幾種,其中一種典型的方式就是跟着鼠標走,鼠標到哪裏,角色就到哪裏。正好有一個積木指令可以實現這種功能。

程序腳本(1)

1:通過背景設置選擇一個海底背景。

2:選擇一個新的角色。(注意角色的大小可以通過工具欄的縮放功能簡單實現,比如要縮小角色,就先點擊工具欄上的縮小按鈕,然後再去點擊角色即可)

Scratch第七講:海底世界(一)

3:設置角色跟隨鼠標移動。

《編程邏輯要點》

這是今天一講的關鍵點,角色跟着鼠標移動的邏輯是什麼?角色爲什麼會時刻跟着鼠標在動?這是我們在理解編程邏輯時,一定要學會問的問題。

有一個指令塊我們可以用到,移動到鼠標指針。這個下拉菜單還有別的選項,小朋友可以自己隨便試試。

Scratch第七講:海底世界(一)

當我們用了這個指令塊,當程序執行到這一步時,角色就可以移動到你鼠標指針的位置。但是如果你的鼠標繼續移動呢?大家知道,程序是按照時間軸順序執行的,當一步執行完就會去執行下一步,直到程序結束。所以我們如何讓角色持續跟着鼠標走呢?只能繼續執行這個指令纔行。如何持續讓程序執行這個指令呢?這個小朋友之前就學過啦,用循環指令就可以實現了!

搞清楚了編程邏輯,腳本就容易多了。

Scratch第七講:海底世界(一)

然後我們趕緊試試吧:

Scratch第七講:海底世界(一)

我們真的實現了小魚跟着鼠標到處跑的功能。但是很明顯程序有些問題,爲什麼呢?當鼠標移動超過場景邊界時,小魚一半身子不見了。跑到場景外面了。雖然好像不是什麼大問題,但是看着總讓人不舒服。做編程的關鍵之一就是一定要注重細節,程序的好壞其中一個重要標準就是對細節的處理。

(好編程要點:注重細節,精益求精)

本講座的第二個重點,角色碰到邊框的處理:

在遊戲裏面,角色碰到邊框如何處理是一個非常普遍和常見的現象,想想你自己玩過的各種遊戲,飛機大戰也好,跑酷也好,簡直隨時都會碰邊框的。

我們希望小魚碰到邊緣就停下來,甚至轉個身子。這個可以實現嗎?可以!有一個指令塊就叫碰到邊緣就反彈,讓我們來試試。

Scratch第七講:海底世界(一)

搞定!來看看效果

Scratch第七講:海底世界(一)

暈!碰到邊緣是不出界了,但是小魚碰到右邊怎麼顛倒了,太抓狂了!這是怎麼回事?其實這裏面有個小技巧,注意到角色左上角的藍色小感嘆號嗎?請點開試試看。

Scratch第七講:海底世界(一)

看見沒?這裏面有一些參數,其中有一項(旋轉模式),這三個旋轉分別是:第一個讓角色發生旋轉(這個翻轉是根據角色的角度來旋轉的,碰到左右邊框則是圍繞着縱軸旋轉到對稱位置,碰到上下邊框圍繞着橫軸旋轉到對稱位置),第二個是讓角色左右翻轉(角色碰到左右邊框時發生左右翻轉,碰到上下邊框時保持不變),第三個則是不管碰到哪個邊框,角色的角度都保持不變。

那我們該選哪個呢?在這個遊戲場景中肯定是第二個更合理。(如果是打飛機的遊戲選哪個呢?小朋友想想看)

好了,遊戲的第一步實現了,通過控制鼠標移動,我們可以變成小魚在海里想去哪就去哪了,下一講我們會增加新的角色啦

查看原文 >>
相關文章