陳新龍
今天我們就來重溫那曾經(jīng)風(fēng)靡一時的小游戲——飛機(jī)大戰(zhàn)?,F(xiàn)在微信小程序上依舊可以搜索到這個游戲,可見這款游戲的經(jīng)典。今天就用Scratch制作簡單的飛機(jī)大戰(zhàn)(如圖1)。
游戲的前期準(zhǔn)備工作,包括了解飛機(jī)大戰(zhàn)的游戲規(guī)則和收集角色圖片。
首先分析游戲規(guī)則,游戲設(shè)置了血量和積分,用來增加游戲的體驗感和趣味性,初始的血量為100,積分為0。我方的飛機(jī)由鼠標(biāo)或上下左右按鍵控制(程序中方便起見使用了鼠標(biāo)控制)。我方飛機(jī)自動向前釋放子彈,擊中敵機(jī)或飛到屏幕邊緣消失。當(dāng)游戲開始后,敵機(jī)隨機(jī)出現(xiàn),從頂部向下移動,我方飛機(jī)需要用子彈射擊或躲避敵機(jī)。敵機(jī)如果碰到子彈飛機(jī)消失并積分加一,如果敵機(jī)碰到我方飛機(jī)或者底部邊緣,血量減少,并且扣一積分。
游戲背景我們可以選擇一個天空的背景,可以畫一個天藍(lán)色背景。
你可以在“愛給(www.aigei.com)”素材網(wǎng)站中下載飛機(jī)和子彈的圖片素材(如圖2)。
作為實(shí)例程序,我們只制作飛機(jī)大戰(zhàn)的必要角色,角色分別為:
我方飛機(jī):由鼠標(biāo)控制
敵方飛機(jī):隨機(jī)產(chǎn)生,可在一個角色中設(shè)置多個造型克隆時隨機(jī)變換,數(shù)量不限制,從上而下移動。
子彈:從我方飛機(jī)向上發(fā)射
我方飛機(jī)代碼:
我方飛機(jī)代碼很簡單,只需要設(shè)置血量、積分變量;在循環(huán)中一直執(zhí)行移動到鼠標(biāo)指針的位置。為了能夠與子彈和敵機(jī)交互,這里設(shè)置了一個“廣播”:start用來控制子彈和敵方飛機(jī)(如圖3)。
子彈代碼:
當(dāng)收到我方飛機(jī)的廣播通知后,我方飛機(jī)會持續(xù)發(fā)射子彈。這里對子彈使用了“克隆”,讓子彈可以無限發(fā)射(植物大戰(zhàn)僵尸中的豌豆射手也使用克隆發(fā)射子彈)。當(dāng)克隆體啟動時,重復(fù)執(zhí)行循環(huán),每次將y坐標(biāo)增加5,實(shí)現(xiàn)子彈從下往上飛的效果,這個數(shù)值越大子彈越快。執(zhí)行偵測判斷,當(dāng)子彈碰到敵機(jī)或者飛到舞臺邊緣,刪除此克隆體(如圖4)。
敵方飛機(jī)代碼:
敵機(jī)的代碼和子彈類似,收到廣播通知后,也是重復(fù)執(zhí)行克隆自己。用隨機(jī)數(shù)賦值給x變量,控制克隆出來的飛機(jī)從不同的位置飛出來。接下來重復(fù)執(zhí)行y坐標(biāo)減3的過程,實(shí)現(xiàn)敵機(jī)從上往下飛行的過程。執(zhí)行偵測判斷,當(dāng)敵機(jī)碰到子彈,說明我方飛機(jī)擊中了敵機(jī),積分加一。如果敵機(jī)飛出了舞臺邊緣或者敵機(jī)撞上了我方飛機(jī),積分減一,且血量減少5(如圖5)。
這樣一個初級的飛機(jī)大戰(zhàn)游戲,編寫的難度并不大,大家完成之后可以想辦法附加些新功能,比如,敵機(jī)同樣可以增加子彈功能,這樣大大增加了游戲的可玩性。還可以增加倒計時功能,或者設(shè)置關(guān)卡。趕緊動起手來,完善飛機(jī)大戰(zhàn)的游戲吧。加油!