大家好,我是秦元培,歡迎大家關注我的部落格,我的部落格位址是。
今天呢,我們來一起做一個懷舊版的經典遊戲打磚塊。相信每一個和部落客同齡的人對于這個遊戲都有着一種獨特的情感吧。這個遊戲是部落客小時候掌上遊戲機裡面比較好玩的一個遊戲,玩家需要通過控制螢幕下方的橫條,通過一個小方塊來消滅螢幕上方的磚塊,玩家每消滅一個磚塊,就能夠得到一定的分數,當消滅完整個螢幕上的方塊後,即可進入下一關,而且螢幕下方的橫條長度會增長。那麼,關于這個遊戲就暫且介紹到這裡,我們下面開始今天的内容。
一、遊戲界面
首先我們建立如下的遊戲場景,這個遊戲場景中我們使用一個plane作為我們的遊戲背景,我們将plane的rotation屬性設定為90,180,0,使其與主錄影機垂直,我們将plane命名為background。接下來我們将主錄影機的投影方式改為正交投影,然後調整錄影機的視野範圍,使我們的background能夠完全顯示在遊戲視窗中。

接下來,我們建立一個cube并調整其大小,它将作為我們的遊戲體,玩家需要控制它來接住小球。我們将它命名為playboard。同樣地,我們建立一個小球,将其命名為playball。我們需要将playboard和playball的z坐标設定為相同的值,即保證它們是在一個平面上。為了讓小球具備彈性,我們可以導入官方提供的實體材質資源包,這裡我們選擇bouncy材質。
好了,到目前為止,我們的界面就已經完成了。下面我們來一起編寫腳本實作腳本控制吧!
二、腳本控制
我們首先需要産生一組磚塊。這裡我們采用動态生成的方法,即先制作磚塊的預設,然後根據預設克隆出新的磚塊。預設在unity3d中就是可複用的遊戲體,使用預設可以減少記憶體資源的消耗。代碼如下:
其中磚塊對象是一個plane的預設,我們這裡準備了黑白兩種顔色的plane預設,這樣畫面的色彩不會顯得單調,主要這裡要加上剛體和碰撞器,我們設定其tag為unitcube。
接下來,我們為白色橫條編寫腳本,在這段腳本中,橫條隻能在遊戲界面内水準移動。代碼如下:
既然已經實作了對于橫條的控制,那麼我們接下來來實作小球的腳本,小球在遊戲開始時會受到一個45度方向的力,這樣小球就有了一個初速度,小球的反彈通過unity的實體引擎來實作。當小球碰到磚塊時,磚塊将被銷毀,玩家得到1分。當小球的位置低于橫條的位置時,遊戲結束。代碼如下:
好了,現在我們隻需要把cubemanager腳本綁定在background上,把ball腳本綁定到小球上,把operator腳本綁定到橫條上,我們就可以運作遊戲了 。
運作遊戲的過程中,我們會發現一個問題就是當小球移動到遊戲界面的邊緣時會消失。理論上在這個位置小球應該會反彈回來,怎麼辦呢?我們繼續回到遊戲界面,在界面的頂部、左側、右側分别建立一個和playball、playboard共面的cube。我們同樣為這個cube設定一個彈性材質.
到目前為止,這個遊戲的核心部分已經全部講解完畢。最後,我們做一個簡單的遊戲管理器gamemanager來實作對玩家得分和遊戲狀态的更新:
其中,關于玩家的得分和遊戲狀态都在ball腳本中定義,大家可以自己去查閱。好了,這就是今天的部落格了,希望對大家有用、希望大家喜歡。
每日箴言:不管是出于意願還是無知,我們的成功和失敗都不是别人招緻的,而是自己決定的。——加思·斯坦
喜歡我的部落格請記住我的名字:秦元培,我的部落格位址是。
轉載請注明出處,本文作者:秦元培,本文出處: