用Scratch編寫《植物大戰(zhàn)僵尸2天空之城第16天》
第一部分?作品預(yù)覽
《第16天》操作指南:
1、點(diǎn)擊綠旗,準(zhǔn)備開始游戲;
2、點(diǎn)擊開始按鈕,進(jìn)入戰(zhàn)斗;
3、使用上下左右鍵,移動(dòng)植物,射擊僵尸的同時(shí),也要注意躲避僵尸的襲擊;
4、隨著得分的增加,植物不斷進(jìn)化;
5、得分超過30000分,游戲勝利;植物血量低于0,游戲失敗。

作品下載鏈接:
鏈接:https://pan.baidu.com/s/1FMR7yLfNc2GwsZkfSKcGCQ?pwd=ds3k?
提取碼:ds3k
第二部分??任務(wù)解讀
1、開始按鈕任務(wù)解讀:
開始按鈕角色主要有三項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,進(jìn)行位置、大小等必要初始化操作。
【任務(wù)2】碰到鼠標(biāo)改變外觀。重復(fù)執(zhí)行:等待碰到鼠標(biāo)指針,增加顏色特效,增加大?。坏却龅绞髽?biāo)不成立的時(shí)候,清除圖形特效,同時(shí)恢復(fù)初始大小。
【任務(wù)3】被鼠標(biāo)點(diǎn)擊,開始游戲。重復(fù)執(zhí)行:等待碰到鼠標(biāo)指針,并且按下鼠標(biāo),廣播“開始”消息,然后隱藏起來,最后停止相關(guān)腳本。
2、地圖任務(wù)解讀:
地圖角色主要有三項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,進(jìn)行位置、大小、造型等必要初始化操作。
【任務(wù)2】移動(dòng)與克隆。收到開始消息之后,切換造型,控制本體緩慢向左移動(dòng),移動(dòng)一段距離之后隱藏本體;與此同時(shí),重復(fù)執(zhí)行克隆自己。
【任務(wù)3】克隆體移動(dòng)。作為克隆體啟動(dòng)之后:將圖層移到最后面(保證白云的克隆體處于倒數(shù)第二層),設(shè)定好出現(xiàn)位置并顯示出來,然后緩慢向左移動(dòng)(移動(dòng)速度和本體要保持一致)移動(dòng)完成之后,刪除此克隆體。
注意:本體的移動(dòng)速度可根據(jù)個(gè)人偏好進(jìn)行設(shè)定,至于本體的出現(xiàn)位置以及消失位置、克隆體的出現(xiàn)位置以及消失位置,需要計(jì)算得出,同時(shí)還要配合角色的造型特點(diǎn)進(jìn)行細(xì)節(jié)調(diào)控,需要多點(diǎn)耐心。
3、白云任務(wù)解讀:
白云角色主要有三項(xiàng)任務(wù):
【任務(wù)1】初始化操作。
綠旗點(diǎn)擊之后,移到最后面,然后隱藏起來。
【任務(wù)2】克隆。收到開始消息之后,重復(fù)的克隆自己。
【任務(wù)3】克隆體移動(dòng)。作為克隆體啟動(dòng)之后:設(shè)定隨機(jī)大小,設(shè)定隨機(jī)方向,設(shè)定隨機(jī)出現(xiàn)位置并顯示出來,然后緩慢向左移動(dòng)(和地圖的移動(dòng)速度略有不同),當(dāng)X-坐標(biāo)小于某個(gè)值的時(shí)候,刪除此克隆體。
注意:如果將X-坐標(biāo)的臨界值設(shè)定成固定值,較小的白云可能不會(huì)消失,較大的云朵消失的過早,這里用了一個(gè)簡(jiǎn)單的判斷算法:X-坐標(biāo)?<?-240 - 大小 / 2;無論白云大小如何變化,這個(gè)算法,可以保證左移一定程度之后,都會(huì)刪除此克隆體。
4、植物任務(wù)解讀:
植物角色主要有四項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,進(jìn)行位置、大小等必要初始化操作。
【任務(wù)2】造型切換。收到開始消息之后,不斷的改變?cè)煨汀ky點(diǎn)是:不僅要改變單一植物的造型,還要根據(jù)得分等級(jí),切換不同的植物種類。這里通過“植物級(jí)別”變量來實(shí)現(xiàn)。
【任務(wù)3】方向鍵操作。收到開始消息之后,重復(fù)判斷按鍵事件,同時(shí)作出相應(yīng)的移動(dòng)。
【任務(wù)4】停止腳本。收到勝利或者失敗消息之后,停止該角色的其它腳本。
5、植物武器任務(wù)解讀:
植物武器角色主要有四項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,將大小設(shè)定為100,然后隱藏起來。
【任務(wù)2】克隆。收到開始消息之后,重復(fù)執(zhí)行:移到植物所在位置,然后播放相應(yīng)聲音、切換相應(yīng)造型。難點(diǎn)是:根據(jù)植物的改變,植物武器也隨之作出相應(yīng)變化,武器聲音也隨之改變。這里也是通過“植物級(jí)別”變量來實(shí)現(xiàn)。隨后,根據(jù)該變量決定克隆體的造型、方向以及克隆數(shù)量。
【任務(wù)3】克隆體移動(dòng)。當(dāng)作為克隆體啟動(dòng)之后,不斷向前移動(dòng),如果碰到舞臺(tái)邊緣,直接刪除此克隆體;如果碰到僵尸,播放擊中時(shí)的聲音,切換爆炸造型,設(shè)定爆炸效果。
【任務(wù)4】停止腳本。當(dāng)收到成功或者失敗的消息之后,停止該角色其它腳本,刪除此克隆體。
6、僵尸任務(wù)解讀:
僵尸角色主要有五項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,設(shè)置位置、大小、方向等必要操作。
【任務(wù)2】克隆。收到開始消息之后,重復(fù)執(zhí)行50次:等待變量“釋放僵尸”等于1的時(shí)候,準(zhǔn)備克隆自己,重置變量“僵尸數(shù)量”、“消滅數(shù)量”、“釋放僵尸”,最后一波釋放X-型(BOSS)。
難點(diǎn):為了保證前一波僵尸表演完,再釋放下一波僵尸,這里引入了標(biāo)識(shí)性質(zhì)的變量“釋放僵尸”,通過判斷“僵尸數(shù)量”與“消滅數(shù)量”的大小關(guān)系,決定是否“釋放僵尸”的值。
【任務(wù)3】碰撞檢測(cè)。當(dāng)作為克隆體啟動(dòng)之后,隨機(jī)選擇僵尸種類,初始化僵尸血量,然后重復(fù)執(zhí)行碰撞檢測(cè)。為了便于代碼的維護(hù)和閱讀,這里自定義了“碰撞檢測(cè)”積木塊,如果碰到植物或者X-坐標(biāo)小于-240,刪除此克隆體;如果碰植物武器,僵尸血量減少,同時(shí)判斷僵尸是否被消滅;如果僵尸被消滅,得分增加,并根據(jù)得分設(shè)定植物級(jí)別以及宣布游戲結(jié)束,然后發(fā)出被消滅的音效。
【任務(wù)4】控制開火。當(dāng)作為克隆體啟動(dòng)之后,重復(fù)執(zhí)行:根據(jù)僵尸名稱,設(shè)定造型切換,做好開火前的準(zhǔn)備:設(shè)定開火位置以及開火僵尸。
難點(diǎn):為了防止不同克隆體僵尸之間的開火信息相互交叉,引入了開火變量,當(dāng)前一個(gè)僵尸執(zhí)行開火之后,下一個(gè)僵尸才能執(zhí)行開火操作。
【任務(wù)5】停止腳本。當(dāng)收到成功或者失敗的消息之后,停止該角色其它腳本,刪除此克隆體。
7、僵尸武器任務(wù)解讀:
僵尸武器角色主要有五項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,將大小設(shè)定為100,將變量“接收消息”設(shè)為1,然后隱藏。
【任務(wù)2】廣播襲擊。重復(fù)執(zhí)行:等待變量“開火”等于1,接著將“開火”設(shè)為0(下次開火必須等到開火標(biāo)識(shí)重新變成1),然后根據(jù)僵尸的名稱,廣播相應(yīng)的襲擊。
【任務(wù)3】克隆。當(dāng)收到襲擊的消息之后,移到開火位置,設(shè)定前進(jìn)方向,切換相應(yīng)造型,然后克隆自己。不同的襲擊,前進(jìn)方向以及克隆次數(shù)都不相同,這里需要多一點(diǎn)耐心與細(xì)心,處理好克隆操作。
難點(diǎn):由于襲擊任務(wù)都是由克隆體完成的,而接收襲擊消息的只有本體,為了不讓克隆體不執(zhí)行消息任務(wù),引入“接收消息”變量,只有“接收消息”等于1時(shí),才執(zhí)行消息內(nèi)容。
【任務(wù)4】執(zhí)行襲擊。作為克隆體啟動(dòng)后,首先將變量“接收消息”設(shè)置為0,然后執(zhí)行具體的襲擊操作:不斷向前移動(dòng),如果碰到舞臺(tái)邊緣,刪除此克隆體;如果碰到植物,植物血量要被扣除相應(yīng)的值,接著判斷植物血量是否小于0,如果小于0,廣播游戲“失敗”。
【任務(wù)5】停止腳本。當(dāng)收到成功或者失敗的消息之后,停止該角色其它腳本,刪除此克隆體。
8、結(jié)束任務(wù)解讀:
背景色主要有三項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,位置移到X:0,Y:0,然后隱藏起來。
【任務(wù)2】勝利。收到勝利消息之后,換成勝利造型,顯示出來,然后設(shè)定顯示效果。
【任務(wù)3】失敗。收到失敗消息之后,換成失敗造型,顯示出來,然后設(shè)定顯示效果。
9、背景任務(wù)解讀:
背景色主要有兩項(xiàng)任務(wù):
【任務(wù)1】初始化操作。綠旗點(diǎn)擊之后,為各種變量設(shè)定初始值,然后播放片頭音樂。
【任務(wù)2】接收消息。根據(jù)收到消息的不同,播放相應(yīng)的背景音樂。
第三部分??代碼編寫
由于代碼篇幅較長(zhǎng),請(qǐng)下載作品源碼進(jìn)行參照。
第四部分??探究與改良
1、請(qǐng)同學(xué)們?cè)谠凶髌返幕A(chǔ)上,結(jié)合自己的想法,修改源代碼。
2、該作品有一個(gè)顯著的不完美之處,那就是缺少血量條。請(qǐng)同學(xué)們嘗試為植物和飛機(jī)僵尸添加血量條。
??編 者 寄 語?
關(guān)于探究改良部分,希望大家認(rèn)真思考!本文提供的作品源碼及改良源碼僅供參考,期待大家探究更優(yōu)的改良程序!
加油吧,后浪!
< 完 >
