Unity下使用貝塞爾曲線制作賽車游戲

本文使用開發(fā)平臺為Unity5.4台颠,編程語言為C#生兆。

貝賽爾曲線算法的原理:http://www.html-js.com/article/1628

GitHub地址:https://github.com/HaoHuaqing/EasyCarGame

因為課題需要泄隔,需要制作一個賽車小游戲薛躬。游戲內(nèi)容為:路程固定(準確的說是垂直方向距離一定)月劈,一條隨機彎曲的道路(貝塞爾曲線),玩家使用搖桿控制左右方向敞临,在道路上可以獲得較高速度,脫離道路后速度較慢麸澜,以盡可能快速到達終點為目的挺尿。

游戲效果圖

如果你安裝好了unity,從GitHub上下載程序后炊邦,在EasyCarGame\Assets目錄下運行CarGame.unity即可運行程序编矾。下面解釋一下程序的幾個關(guān)鍵點:

1.EasyCarGame\Assets\scenes目錄下會有car和grass的圖片,將一張car圖片和兩張grass圖片放入scene區(qū)域铣耘,小車自動向上運動洽沟,在草地上速度較慢,在道路上速度較快蜗细,cameracontrol.cs控制Main Camera追隨小車位置裆操,使小車保持在視野內(nèi);grasscontrol.cs控制草地從下方離開視野內(nèi)后自動調(diào)整位置到當前草地前方炉媒,使草地連續(xù)踪区。

2.新建一個空的游戲?qū)ο螅麨閟tartpoint吊骤。添加Sprite Renderer組件缎岗,設(shè)置sprite為button。將該點置于屏幕顯示范圍之外的下方白粉,作為貝塞爾曲線的起始點传泊。此后貝塞爾曲線上所有的相關(guān)點也是基于這個點生成的鼠渺。

3.基于startpoint復(fù)制了了98個游戲?qū)ο螅c與點之間垂直方向距離均為10眷细,每間隔一個點水平方向加入一個(-2,2)的隨機擾動使該點作為貝塞爾曲線控制點拦盹。所有奇數(shù)號點在同一條直線上。即一號點溪椎,二號點普舆,三號點構(gòu)成一條貝塞爾曲線;三號點校读,四號點沼侣,五號點構(gòu)成一條貝塞爾曲線,以此類推歉秫。在Bezier.cs中使用DrawCurve()函數(shù)將他們連接起來蛾洛。

隨機點的生成

4.游戲設(shè)計基于手柄,當然你可以嘗試用鍵盤方向鍵控制端考。使用Input.GetAxis("Horizontal")雅潭,獲取搖桿水平輸入,范圍在(-1,1)却特,因為畫面寬度為20扶供,所以將搖桿輸入乘以10。

5.將Bezier.cs中的pixel定義為static裂明,所以在carcontrol.cs中可以用Bezier.pixel訪問椿浓,用于確定小車是否在路上。在Bezier的Line Renderer中設(shè)置道路寬度為3闽晦,所以pixel+-1.5為道路邊界扳碍,在此范圍內(nèi)設(shè)置速度為0.4,其他位置速度降為0.1.在build之后的exe文件運行時仙蛉,Application.Quit()函數(shù)會調(diào)用笋敞,在unity環(huán)境下該函數(shù)會被忽略。

判斷小車是否在道路上
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荠瘪,一起剝皮案震驚了整個濱河市夯巷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哀墓,老刑警劉巖趁餐,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異篮绰,居然都是意外死亡后雷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臀突,“玉大人勉抓,你說我怎么就攤上這事『蜓В” “怎么了琳状?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盒齿。 經(jīng)常有香客問我,道長困食,這世上最難降的妖魔是什么边翁? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮硕盹,結(jié)果婚禮上符匾,老公的妹妹穿的比我還像新娘。我一直安慰自己瘩例,他們只是感情好啊胶,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垛贤,像睡著了一般焰坪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聘惦,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天某饰,我揣著相機與錄音,去河邊找鬼善绎。 笑死黔漂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的禀酱。 我是一名探鬼主播炬守,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剂跟!你這毒婦竟也來了减途?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤浩聋,失蹤者是張志新(化名)和其女友劉穎观蜗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衣洁,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡墓捻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砖第。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡撤卢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梧兼,到底是詐尸還是另有隱情放吩,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布羽杰,位于F島的核電站渡紫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏考赛。R本人自食惡果不足惜惕澎,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颜骤。 院中可真熱鬧唧喉,春花似錦、人聲如沸忍抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸠项。三九已至干跛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祟绊,已是汗流浹背驯鳖。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留久免,地道東北人浅辙。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像阎姥,于是被迫代替她去往敵國和親记舆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容