上周的宇宙大戰射擊游戲中,我們只完成了宇宙飛船發射子彈的部分。還未制作敵對方。這周制作了敵方-飛龍,飛龍隨機在屏幕上方出現,如果被子彈打中,則得分,飛龍和子彈都消失。
敵方:飛龍;計分。
目的
目的:制作射擊游戲的敵方-吐火的飛龍。當子彈碰到飛龍時,飛龍被消滅,同時增加分數。
實現方式
克隆依然是重要的操作。 每一只飛龍出現時,都需要先克隆一份,然后設定一定的隨機方向,從屏幕上方往下移動。為了讓飛龍有飛的感覺,我們切換飛龍的造型。飛龍在普通造型和吐火的造型中來回切換。
如果碰到子彈(閃電),則刪除飛龍的克隆體。系統設置了一個全局變量,記錄分數,飛龍被打中后,分數增加10.
為了讓其他角色能夠接受到打中的命令、播放聲音,還需要使用廣播消息。對方接收到廣播消息后,采取一定的動作。
宇宙飛船移動,打中加分。
子彈:克隆,發射前移到飛船上。
制作步驟
第一步:飛龍。
1. 加入飛龍角色
2. 設置開始事件
3. 直接重復執行,無限循環
4. 每一次循環都克隆一個飛龍,因此循環里面可以增加等待2秒。如果等待時間過短,飛龍就會很多,難度就會增加。如果克隆體過多,會導致系統性能變慢。
5. 從屏幕上方往下方飛行,因此Y直接固定為180,即頂部。然后X位置在-240和240中隨機選擇一個數字。
6. 然后隨機設定一個方向,135到255方向。
7. 然后即可以重復執行,每次移動3步。移動的步數越大,飛龍就飛得越快。
8. 判斷:根據X和Y軸數值判斷,如果飛龍飛出屏幕,則刪除飛龍克隆體。
9. 判斷:如果碰到子彈,則刪除克隆體,同時廣播“打中了”。
10. 如果碰到宇宙飛船,則刪除克隆體,同時廣播“游戲結束”
11. 一個循環以后,可以切換一次造型。這樣飛龍就有飛舞的感覺了。
飛龍:克隆,碰到子彈就消失,出屏幕后也消失。
第二步:分值計算
12. 需要增加一個全局變量。放在宇宙飛船上。當收到“打中了”的消息時,該變量增加10.
后續改進
13. 后來,我們增加了一個球,即每次宇宙飛船會發出一個球和一個閃電,在球的發射中,改變造型,飛行過程中,球的顏色就不斷變化。但似乎克隆體太多了,系統速度變慢,不夠順暢了。
14. 可以在游戲結束以后,更換背景,顯示游戲結束的場景,播放游戲結束的聲音。
相關知識
今天在白板上介紹了用到的一些控件。通過舉例,理解每個控件的意義。
1. 角色:飛龍、飛船、閃電等
2. 舞台:這個有點復雜,要介紹清楚X軸和Y軸。最終提問,例如如果飛龍要往右移動,X和Y如何變化。往右上角、右下角、左上角、左下角等。
第一次結束Scratch時,聯系了碰到邊緣以后返回到原點,即設置X或Y的初始值。然后不停循環。
3. 運動:
a. 移動到X,Y;
b. 設定方向??度;0度朝上,90度朝右,180度,朝下,-90度,朝左。和時鍾類似。
c. 移動到??對象上,例如子彈發射時,移動到宇宙飛船上。第二次的接球游戲中,我們讓一塊板跟隨鼠標左右移動,用到了移動到鼠標的操作。
d. 將X坐標增加??,正為右移,負為左移
e. 將Y坐標增加??,正為上移,負為下移。
4. 外觀
a. 顯示
b. 隱藏
c. 將角色大小設定為??
5. 控制
a. 重復執行:無限制,一直執行
b. 重復執行??次,做完指定次數以后,就結束循環了。
c. 如果…那么…:我們舉了好些例子,一個角色從左到有移動,到右邊X》230,就不讓繼續移動,直接將X設定為-230,就能回到起點。
d. 如果…那么…, 否則
e. 克隆(自己、其他角色):克隆是非常重要的,就是復制一份出來,每一份都可以單獨操作。
f. 克隆體啟動時,例如往下飛行,往上飛行。
g. 當克隆體碰到邊緣或其他角色時,可以刪除本克隆體,廣播消息。
分享地址:https://Scratch.mit.edu/projects/196376484/
瀏覽器中需要Flash播放器。