[英]Terrain and Collision in a Game
我正在嘗試創建一個新游戲,其中車輛可以沿着地面行駛,但也可以使用推進器暫時空降。
我是游戲編程的新手,但是我擅長使用Java,C,C ++等進行編碼,因此我認為這不應該成為問題(游戲的第一版是Java)。 我的問題是,我是從頭開始,無法想像地形成為障礙的方法,因此車輛不會從中掉落。 我如何讓他們可能遭受跌倒傷害?
過去,人們已經將我定向到副本島資源,因為它已經包含了副本系統,並且我看到了整個碰撞系統,但是到目前為止,我還無法理解它,我希望有人願意幫我一下
謝謝
羅夫哈
您正在使用什么來開發游戲? 引擎還是圖形庫? 基本上有三個級別(我想考慮一下):圖形庫,圖形引擎和游戲引擎。
圖形庫幾乎可以達到最低級別:OpenGL或DirectX。 當要繪制地形時,您將繪制為三角形網格,並定義這些三角形的頂點等。
圖形引擎是最重要的一層。 這些示例(至少對於C ++)是Ogre3D,Horde3D和Irrlicht。 他們將處理許多較低級別的命令,並讓您從更高級別的角度來專注於圖形。
游戲引擎幾乎會處理與圖形相關的任何事情。 這些示例(還是C ++)是Unity和UDK。 他們通常可以為您做很多游戲編程。 您可能會在建模程序(3dsmax等)中繪制地形,將其導出為某種格式,然后引擎將對其進行處理並確切地知道如何處理。
我已經玩過這三個文件,並發現最有趣的圖形庫。 但是,他們可能會花費最長的時間來制作游戲。 它們還涉及更多的數學(線性代數)。
至於與地形的碰撞檢測。 您必須了解組成該地形的三角形。 如果您使用的是游戲引擎,則應該能夠將地形的網格物體和角色的網格物體存儲在某種“場景節點”中,並且它將自動處理碰撞檢測。 但是,如果您自己處理所有事情,則有許多流行的算法可以做到這一點:
我編寫了一個示例OpenGL程序,該程序基本上使一個由邊界框表示的角色繞着需要碰撞檢測的地形行走。 如果您對它的工作方式更感興趣,請告訴我。
您可以通過以下幾種方法處理跌落傷害:
您可能還想嘗試Nvidia PhysX,除了它的名字所暗示的(您想對汽車物理學建模,這讓我想到了它),某些實用程序還提供了很多功能,例如碰撞檢測,四元數數學等
我將其與開放式圖形引擎Ogre(到目前為止;-)...配合使用,使得在OpenGL-DirectX和Linux-Microsoft之間的切換相對容易),該引擎也有很多功能。
由於您已經知道如何編寫代碼,因此我建議將以上內容視為可行的方法,而不是替代方法,而是開放源代碼; 這樣您就只需要重塑所需的車輪零件即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.