少兒編程Scratch第四講:射擊游戲的制作,克隆的奧秘


上周的宇宙大戰射擊游戲中,我們只完成了宇宙飛船發射子彈的部分。還未制作敵對方。這周制作了敵方-飛龍,飛龍隨機在屏幕上方出現,如果被子彈打中,則得分,飛龍和子彈都消失。

1

敵方:飛龍;計分。

目的

目的:制作射擊游戲的敵方-吐火的飛龍。當子彈碰到飛龍時,飛龍被消滅,同時增加分數。

實現方式

克隆依然是重要的操作。 每一只飛龍出現時,都需要先克隆一份,然后設定一定的隨機方向,從屏幕上方往下移動。為了讓飛龍有飛的感覺,我們切換飛龍的造型。飛龍在普通造型和吐火的造型中來回切換。

如果碰到子彈(閃電),則刪除飛龍的克隆體。系統設置了一個全局變量,記錄分數,飛龍被打中后,分數增加10.

為了讓其他角色能夠接受到打中的命令、播放聲音,還需要使用廣播消息。對方接收到廣播消息后,采取一定的動作。

2

宇宙飛船移動,打中加分。

3

子彈:克隆,發射前移到飛船上。

制作步驟

第一步:飛龍。

1.    加入飛龍角色

2.    設置開始事件

3.    直接重復執行,無限循環

4.    每一次循環都克隆一個飛龍,因此循環里面可以增加等待2秒。如果等待時間過短,飛龍就會很多,難度就會增加。如果克隆體過多,會導致系統性能變慢。

5.    從屏幕上方往下方飛行,因此Y直接固定為180,即頂部。然后X位置在-240和240中隨機選擇一個數字。

6.    然后隨機設定一個方向,135到255方向。

7.    然后即可以重復執行,每次移動3步。移動的步數越大,飛龍就飛得越快。

8.    判斷:根據X和Y軸數值判斷,如果飛龍飛出屏幕,則刪除飛龍克隆體。

9.    判斷:如果碰到子彈,則刪除克隆體,同時廣播“打中了”。

10.  如果碰到宇宙飛船,則刪除克隆體,同時廣播“游戲結束”

11.  一個循環以后,可以切換一次造型。這樣飛龍就有飛舞的感覺了。

4

飛龍:克隆,碰到子彈就消失,出屏幕后也消失。

第二步:分值計算

12.  需要增加一個全局變量。放在宇宙飛船上。當收到“打中了”的消息時,該變量增加10.

后續改進

13.  后來,我們增加了一個球,即每次宇宙飛船會發出一個球和一個閃電,在球的發射中,改變造型,飛行過程中,球的顏色就不斷變化。但似乎克隆體太多了,系統速度變慢,不夠順暢了。

14.  可以在游戲結束以后,更換背景,顯示游戲結束的場景,播放游戲結束的聲音。

相關知識

今天在白板上介紹了用到的一些控件。通過舉例,理解每個控件的意義。

5

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播放器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM