資訊內(nèi)容
Scratch第71講:飛機(jī)大戰(zhàn)(三)
想了解編程技巧,就請(qǐng)點(diǎn)擊上面藍(lán)字:跟我學(xué)Scratch編程,關(guān)注CC哥
這個(gè)游戲越做越有意思,我這次做完之后難度確實(shí)增大了,連我這個(gè)飛機(jī)大戰(zhàn)的老手玩起來(lái)也覺(jué)得挺有難度的,個(gè)人覺(jué)得這是CC哥做的最好玩的游戲了。今天把轟炸機(jī)的部分也做出來(lái)了,跟大家分享一下。
學(xué)編程要從興趣出發(fā)
學(xué)Scratch,CC哥的感覺(jué)就是用簡(jiǎn)單的積木做出自己喜歡的藝術(shù)品,有點(diǎn)象樂(lè)高積木,一開(kāi)始只能跟著說(shuō)明書(shū)去安裝,后來(lái)越來(lái)越熟,掌握了其中的技巧,就開(kāi)始自己設(shè)計(jì)更多復(fù)雜的造型,做出自己喜歡的藝術(shù)品,一開(kāi)始只能做些小的造型,做個(gè)小汽車(chē),小房子,慢慢的可以拼成摩天大樓,可以拼各種各樣的汽車(chē),輪船,軍艦,甚至宇宙飛船。樂(lè)在其中,其樂(lè)無(wú)窮。所以CC哥要告訴家長(zhǎng)朋友們,一定不要給孩子學(xué)Scratch的時(shí)候設(shè)定太多的目標(biāo),這不是編程大賽,也沒(méi)什么競(jìng)賽名次,那都是不切實(shí)際的事情,通過(guò)興趣,培養(yǎng)創(chuàng)造性,思維能力,細(xì)心耐心的品質(zhì),這樣你的孩子在后續(xù)漫漫的學(xué)習(xí)征途中,越走越高,脫穎而出。
游戲演示
這段視頻有點(diǎn)大,最好用WIFI看呀,為了錄好,CC哥把游戲難度降低之后,才打到子彈滿配的情況。
轟炸機(jī)的設(shè)計(jì)構(gòu)想
轟炸機(jī)其實(shí)就是更大的飛機(jī),更禁打,血量高。另外可以發(fā)射更多的子彈。然后被打掉之后有機(jī)會(huì)出裝備。裝備這部分CC哥今天先做的是子彈裝備,也就是大家說(shuō)的“吃子彈”,下次CC哥再把“雷”加進(jìn)去。所以今天我們的程序就是要做到這幾個(gè)元素。
轟炸機(jī)代碼
先確認(rèn)一下轟炸機(jī)的出場(chǎng)規(guī)律和生命值,CC哥為了演示的需要,把出現(xiàn)頻率設(shè)置的有點(diǎn)高。
再看轟炸機(jī)出場(chǎng)模式:
先看造型,看出問(wèn)題沒(méi)有?這個(gè)轟炸機(jī)沒(méi)有在造型的中心點(diǎn)上,而是偏下了,為什么?
別的飛機(jī)一般出來(lái),碰到舞臺(tái)邊緣就消失了,CC哥都是這么處理的。而轟炸機(jī)不行,轟炸機(jī)比較大,移動(dòng)得又很慢,如果碰到邊緣就消失顯得很別扭。轟炸機(jī)應(yīng)該是慢慢的飛出舞臺(tái)邊緣。
看到?jīng)]?這點(diǎn)怎么實(shí)現(xiàn)?一般角色是不能完全飛離舞臺(tái)之外的,怎么做到的?如果不知道的朋友,就好好回頭去看CC哥早期的課程,看看冰激凌那一課。做游戲除了做構(gòu)思之外,就是做細(xì)節(jié),尤其是技術(shù)細(xì)節(jié)不能放過(guò),一定要處理好。非技術(shù)細(xì)節(jié)可以偷懶,技術(shù)細(xì)節(jié)不可以哦。
這段代碼就是轟炸機(jī)入場(chǎng)和離場(chǎng)的代碼,循環(huán)里上半部分是入場(chǎng),下半部分是離場(chǎng)。入場(chǎng)是傳統(tǒng)的代碼,離場(chǎng)就是CC哥說(shuō)的能夠讓角色完全離開(kāi)舞臺(tái)的技巧。入場(chǎng)的代碼不能用離場(chǎng)的來(lái)代替,為什么不行,大家試一下就知道了。
轟炸機(jī)發(fā)射子彈:
這里面有兩點(diǎn),子彈是單獨(dú)的角色,所以需要轟炸機(jī)和子彈來(lái)做配合,CC哥說(shuō)過(guò),都是克隆體的游戲,盡量克隆體之間溝通不要用消息,為什么以前解釋過(guò)很多遍了。所以這里我們用“轟炸機(jī)發(fā)射”這個(gè)變量來(lái)做溝通用的變量。用“轟炸機(jī)發(fā)射位置x,y”來(lái)記錄子彈發(fā)射的位置點(diǎn)。第二,不是每一次轟炸機(jī)出場(chǎng)都發(fā)射子彈,所以CC哥的這個(gè)判斷語(yǔ)句的條件就是取50%的概率,轟炸機(jī)會(huì)發(fā)射子彈。
轟炸機(jī)被擊中過(guò)程的效果:
這部分是做完之后,CC哥才加上去的,做完完的時(shí)候,CC哥突然發(fā)現(xiàn),轟炸機(jī)一般要打半天才打掉,都不知道轟炸機(jī)還剩多少血量,打起來(lái)挺灰心的,不知道什么時(shí)候才能被打死還要不要繼續(xù)打,還是放過(guò)去。為了解決這個(gè)問(wèn)題,CC哥覺(jué)得如果在轟炸機(jī)在不斷被擊中的過(guò)程中,隨著血量的降低,飛機(jī)上不同的位置開(kāi)始著火,就能充分表現(xiàn)這一點(diǎn),后來(lái)加上去發(fā)現(xiàn)效果還不錯(cuò)。
轟炸機(jī)被擊毀的代碼:
擊毀的效果CC哥就地取材,就用了子彈角色的造型,不過(guò)就是個(gè)頭大些,然后被擊毀后,這個(gè)爆炸造型不斷變大,然后消失。
贈(zèng)送裝備這部分因?yàn)檫@次只有一種裝備送,所以沒(méi)做判斷,同時(shí)裝備也沒(méi)做克隆,就用消息來(lái)處理好了。
轟炸機(jī)發(fā)射子彈
這兩段代碼一個(gè)是什么時(shí)候發(fā)射子彈,一個(gè)是怎么發(fā)射。都是放在子彈角色里,跟敵機(jī)發(fā)射的子彈的角色是一個(gè)角色。為什么用自定義命令是為了發(fā)射效果。
用自定義命令,運(yùn)行時(shí)不刷新屏幕后就是第二種效果。
獎(jiǎng)勵(lì)裝備
這個(gè)造型也是就地取材,直接用兩個(gè)子彈拼在一起,然后畫(huà)個(gè)圈就好了。
代碼也簡(jiǎn)單,引用了計(jì)時(shí)器,確保如果20秒還不被吃掉,那么標(biāo)志就消失,代表沒(méi)吃到,如果知道了就提升子彈級(jí)別。
子彈級(jí)別是引入的新的變量,一共分四級(jí),也就是一排最多4發(fā)子彈。
所以戰(zhàn)機(jī)子彈的角色部分也要做出調(diào)整,需要在根據(jù)子彈的級(jí)別來(lái)判斷子彈的發(fā)射模式了。下面這段代碼就是對(duì)發(fā)射子彈部分做的改變。
稍微復(fù)雜了點(diǎn),但是很簡(jiǎn)單,就是子彈克隆的位置放好就行。
總結(jié)
今天就講這么多,一些因?yàn)橐朕Z炸機(jī)引起的小的改動(dòng),比如戰(zhàn)機(jī)撞到轟炸機(jī)等這些小調(diào)整都是在判斷上略微調(diào)整,就不再一一列舉了。飛機(jī)大戰(zhàn)還準(zhǔn)備再做一講,準(zhǔn)備把護(hù)航飛機(jī)和大炸彈也做進(jìn)去,然后飛機(jī)大戰(zhàn)這一個(gè)主題就可以結(jié)束了,大家期待不?
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
Scratch全國(guó)少兒編程競(jìng)賽獲獎(jiǎng)作品《穿越時(shí)空的大戰(zhàn)》解析上篇
Scratch全國(guó)少兒編程競(jìng)賽 獲獎(jiǎng)作品解析 《穿越時(shí)空的大戰(zhàn)》 本文介紹的作品是全國(guó)青少年創(chuàng)意編程與智能設(shè)計(jì)大賽創(chuàng)意編程比賽一等獎(jiǎng)獲得者齊嘉懿同學(xué)的參賽作品。 作品說(shuō)明 游戲主人公在名偵探柯南的幫助下,體驗(yàn)了最新的科技發(fā)明——AI機(jī)器人和
- 下一篇
Scratch: 太陽(yáng)系 II
這是「天叔奇談」的第 057 篇文章,今天周三(2019/11/13),主題 scratch,我們今天繼續(xù)完善上周的太陽(yáng)系。 課堂回顧 我們先回顧了一下上次做的內(nèi)容:地球繞太陽(yáng)轉(zhuǎn),月球繞地球轉(zhuǎn)。我本來(lái)打算在白板上畫(huà)一個(gè)太陽(yáng)系講解,結(jié)果小寶說(shuō)