雷霆戰(zhàn)機游戲的制作方法
前言
從掌機到紅白機再到街機,從主機到PC再到手機端,游戲的載體一直在變化,不變的是那份永遠的樂趣。

即使轉移到手機端,游戲的類別依然多種多樣。
若論當下最火的手游無疑是俗稱“吃雞”的“和平精英”和“農(nóng)藥”的“王者榮耀”。但棋牌類、跑酷類、消除類等游戲也有著不少擁躉。對了,還有一款自“掌機”時代就存在的“打飛機”游戲。
知名打飛機游戲必須有“雷霆戰(zhàn)機”的一席之地。

雖然是2D畫面,但體驗感和畫面都可以打高分。
今天,我們就來聊一聊雷霆戰(zhàn)機游戲是怎么做出來的。
工具:Unity
用unity制作2D游戲雷霆戰(zhàn)機還是很簡單的,這也是學習unity開發(fā)練手的好項目之一了。因為雷霆戰(zhàn)機雖然不是很難,但涉及到的技術點很多,而且還是一款非常經(jīng)典游戲。
這里做了一個雷霆戰(zhàn)機來分享一下。
功能包括子彈子彈發(fā)射,大范圍發(fā)散子彈發(fā)射,追蹤導彈,激光炮等。哦對了,還有對象池技術。在這里會詳細說下做法,除了激光炮略有難度,其他應該看下就能懂了。
先看下效果圖

image
從圖中可以看到有激光炮,追蹤子彈,普通子彈(截圖的時候沒有到發(fā)射時間,所以沒發(fā)出來,大范圍的子彈也有,這里沒有用。)這些效果是怎么做的呢?接下來慢慢看下。
這里不講對象池,之前專門講過,可以去看看以前的文章。
首先講追蹤導彈的做法,比較簡單。
所謂追蹤導彈,必定會每時每刻都朝著敵機過去,所以我們就必須要得到子彈和敵機每時每刻的角度。那么敵機可能有很多在同一時間出現(xiàn),我們該讓它追誰呢?這個就看自己,反正是自己寫邏輯,想怎么做就怎么做。這里就是隨機追一個,如果正在追的那個敵機沒了,那么子彈自己爆炸。
這里給出追蹤導彈代碼:

第一個函數(shù)是在發(fā)射子彈的控制腳本中的函數(shù),第二個是子彈自己的腳本中。很簡單,每時每刻記錄子彈和目標的角度,然后把子彈的歐拉角的值用這個角度,但是要注意角度方向。所以,我這里用比較X值的方法做的。因為是常規(guī)2D游戲,所以就是豎直平面內(nèi)。是不是很簡單?
接著說激光炮的做法。
這個激光炮有點意思。原理是:從發(fā)射口的左邊發(fā)射一個子彈(空物體就夠),然后讓它進行2D射線檢測,方向朝它的對面(也就是發(fā)射口的右邊),他們是對稱的。然后由于射線是看不見的,為了用戶體驗十足,我們把這個射線模擬出來,也就是激光線要繪制出來,就用線渲染器來操作就可以了。
代碼截圖如下:

搞定~
是不是沒什么難度?本來嘛,這算是很簡單的需求。
OK,本期技術講解就分享就到這里了,如果大家有不明白的地方,或者其他疑問,可以在評論區(qū)留言,后續(xù)將會在評論區(qū)一一給大家解答。