一個人做游戲(終)——新功能與一些練習
序
這次的專題UP在第一期就說過,不是為了做好玩的游戲,目的是用這種簡單的游戲類型教學大家程序入門。
上一期有計劃想將游戲內(nèi)容擴展豐富,不過UP看了下,發(fā)現(xiàn)之后所有的擴展都是搬磚了。
所以UP將不自己親自擴展了,而是給大家講方法,并將源代碼留給各位,讓各位可以學習擴展。
炸彈氣球功能
之前UP有一個想法是做個黑色氣球,點擊后反而會扣血,增加游戲性,這種內(nèi)容怎么寫呢,其實就是把之前所學習的知識復(fù)制粘貼。
我們曾經(jīng)在項目里寫過redBall功能,就是普通的點擊加分的氣球,如果我們要寫點擊扣血的氣球,我們可以復(fù)制一份。

將prefab綁定過的redball拖到游戲區(qū)域中,然后復(fù)制一份blackball(這些操作在之前幾期都做過描述,這里就不再次講述了)
接下來我們要修改代碼,在一個代碼里區(qū)分兩種氣球,這好像是一個新知識,打開我們之前的ballFly代碼(如果不記得,可以git下我的代碼,看看是哪個),添加以下內(nèi)容:

然后再修改一些代碼加入新內(nèi)容

可能此時你沒有弄懂UP寫這段內(nèi)容的意思,我們回到游戲界面看一看,指向之前加載代碼的文件,有沒有看到多出了個Mode的選框,于是我們可以將紅氣球選擇red,黑氣球選擇black,它們所執(zhí)行的代碼就不同了。

然后我們搞個黑氣球,注意這里UP偷懶了,如果有美工千萬不要學UP

再接下來我們修改下createBall文件,之前只會隨機生成紅氣球,我們要增加黑氣球,實現(xiàn)辦法就是新建個gameobject,生成氣球的時候判斷生成紅還是黑。

然后將blackBall的prefab拖入到界面里blackball的gameobject里面
最后還有一個地方要改一改,就是hitball,得分的界面,因為我們說點擊blackBall扣血,所以

好了我們來測試一下

你會發(fā)現(xiàn)一件事,黑球是不是太多了點,所以我們可以調(diào)整下隨機數(shù)

我們改成了這樣,這個意思就是有30%的概率出現(xiàn)黑球
然后這款游戲基本上功能就差不多了,其實UP覺得寫了這么多功能的游戲還是有一個玩點,就是早上起床的時候沒睡醒可以玩一把用來提神,如果能配合鬧鐘一起啟動然后點擊多少分后才能解除鬧鐘效果更好( ′?`)。

各種功能的寫法
上一期UP說過,這種游戲其實可以補充很多細節(jié)的,不過UP就不再繼續(xù)寫下去了,開頭序言時也有說過原因,不過呢UP會根據(jù)難度把一些功能作為題目,有興趣大家可以跟著我的題目來練習,代碼也可以在git里找到(git地址見一個人做游戲的第一期)。
第1題-高分氣球:速度很快,放走不會受到傷害,只是點擊到會加大量分
這種類型的氣球和上面的黑氣球是一個原理,只是初始速度更快,算是最簡單的“搬磚”難度了
第2題-額外金幣:炸彈氣球飛出屏幕后會掉落下一顆快速飛出屏幕的金幣,點擊可以獲得幣
其實原理也很簡單,首先要寫一種快速下落的金幣(氣球是上升的,下落則反過來計算)
其他的也是可以搬磚完成
第3題-血包:點擊后加1點血
這個基本上也是搬磚就可以完成的,UP都不再多解釋,不過需要注意的是游戲里最大HP是3.
第4題-高分區(qū)域:在屏幕上留下一塊區(qū)域,在區(qū)域內(nèi)點擊氣球會獲得高分
跟上面2個比起來稍微有點難度,其實原理是你要確定區(qū)域,再確定氣球是否碰到到區(qū)域,如果在區(qū)域內(nèi)被點擊則給高分
第5題-炸彈道具:游戲里會給一個炸彈道具如果發(fā)現(xiàn)要死掉了,可以點擊炸彈將全屏的氣球消除
這個可能有點難,首先要動到UI按鈕功能,炸彈個數(shù)計算,然后難點是如何清除氣球,UP給個思路,gameobject.find這個功能還記得嗎,查到所有叫某個名字的氣球,再把它們?nèi)縿h除就好了。
好了,UP給了5個練習給想學習的你們,如果能完成前3題,基本上算是程序入門了,如果能完成4說明你程序還有點厲害,如果5個題目全部完成了,相信也可以和UP一樣寫一些簡單的游戲了。
總結(jié)
UP的做游戲系列就到這里暫時告一段落,剛開始的時候?qū)懙奶y以及題材不是很好,還導致UP棄坑了一次,這一次才算找到了方向,做了個很好的入門教學。
當然,接下來UP也會繼續(xù)發(fā)一些專欄文章,不過UP會再次回到策劃上面,說一說游戲設(shè)計與游戲行業(yè)。