創作內容

10 GP

Unity3D與遊戲程式設計(一)

作者:雪藏│2014-07-10 23:31:40│巴幣:20│人氣:3683
這篇主要是探討實作面的東西,所以開了一個新的項目。
最近因為有朋友問到關於AI障礙物避免的問題,所以我實作了一個簡單的DEMO。這篇使用的作法來自於"Game Programming Gems 3"第三章裡的動態障礙章節,先放上程式碼:



這個作法的概念是把物體都當成一個圓去處理,然後把我方的半徑加在障礙物上面, 我方就變成一個點,然後製作一個探針,長度是我方的半徑加上障礙物的半徑,把這個探針的點拿來跟障礙物算碰撞,如果有碰撞,就算出圓的最右的點,接下來把這個點再跟其它障礙物算碰撞,如果有碰撞,再求出這個障礙物最右邊的點,依此循環,就可以求出最右邊可以閃過障礙物的點,然後用這個點減掉我方座標,當成新的方向,然後一路往最右邊的點移動,沿路仍然不斷計算前方是否有其它障礙物,如有的話,重新計算新的避免點。最後完全避免掉障礙物後就一路往目標快樂奔去~~。
這個作法其實要算左右兩邊,但如果你一開始是轉右邊,那就要一路往右邊算,左邊同樣,因為DEMO,所以我沒完成這部分,那這個方法可搭配A*來做小範圍的區域避障,有不錯的效果,但還有一些細節要處理,例如障礙物可能已經到牆壁了,那可能就要改成走另一邊,或跟物體重疊了,那就給予一個排斥力來脫離重疊。



上圖是測試畫面,歡迎大家一起討論。


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2507550
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言


請問哪裡有一些簡單程式的教學
我在做一個2D遊戲 我想要做一個事件按鈕
當人物走到那個地方後 前面會觸發動畫 就是讓我畫的東西 從靜止變成移動然後直到出去畫面
.....
自己對coding 一竅不通 只會美術
連角色控制器 也是用官方的
但是在做spritsheets的時候
官方是用一張圖片收納多個動作
自己作的時候為了保留細緻 怎麼樣都壓不下2MB
但是把角色的物件分開來變成個別用動畫去執行只需要400KB

移動可以但是跳不起來...
(ˊ_ˋ 唉....

07-18 02:23

我要留言提醒:您尚未登入,請先登入再留言

10喜歡★andy1214 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:遊戲程式設計與Unity... 後一篇:Unity3D與遊戲程式...

追蹤私訊切換新版閱覽

作品資料夾

happy545你好~~
如果我賣以前畫畫的作品有人會買嗎?我真的需要幫忙....看更多我要大聲說18分前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】