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