我正在尝试创建一个新的游戏,其中车辆沿着地面行驶,但也有能力使用推进器暂时空降。
我对游戏编程比较陌生,但我擅长编写Java,C,C ++等编码,所以我不认为这应该是一个问题(认为游戏的第一次迭代是用Java编写的)。我的问题是,我从头开始,并没有想到地形成为障碍的方式,因此车辆不会直接通过它。我怎么能让他们受到坠落伤害?
过去人们已经把我带到了Replica Island的源头,因为它已经有了它,我看到了整个碰撞系统,但到目前为止我还没有理解它,我希望有人会愿意伸出援助之手。
谢谢
-Roflha
答案 0 :(得分:5)
你用什么来开发游戏?引擎或图形库?基本上有三个级别(我喜欢考虑它们):图形库,图形引擎和游戏引擎。
图形库几乎就是这样 你可以获得低级别:OpenGL或 的DirectX。什么时候想抽出来 你的地形,你将绘制为 一个三角形网格,并定义 这些三角形的顶点等
图形引擎位于顶层 那个。那些例子(对于C ++ 至少)是Ogre3D,Horde3D和 Irrlicht的。他们会照顾一个 很多低级命令,和 让你专注于更多的图形 更高层次的立场。
游戏引擎非常需要 关心任何图形相关的。 这些(再次是C ++)的例子是 Unity和UDK。他们一般都可以 很多游戏编程 您。你可能会画你的 建模程序中的地形 (3dsmax等),将其导出到某些 格式,然后引擎会啜饮它 了解如何处理它。
我玩过这三个,找到最有趣的图形库。然而,他们可能花费最长的时间来制作游戏。它们还涉及更多的数学(线性代数)。
对于地形的碰撞检测。您必须了解构成该地形的三角形。如果您正在使用游戏引擎,您应该能够在某种“场景节点”中存储地形的网格和角色的网格,并且它将自动处理碰撞检测。但是,如果您自己处理所有事情,有许多流行的算法可以做到这一点:
An excellent article on bounding sphere collision detection
我编写了一个示例OpenGL程序,它基本上让一个由边界框表示的角色绕地形走动,这需要碰撞检测。如果您对它的工作原理更感兴趣,请告诉我。
您可以通过以下几种方式处理坠落伤害:
答案 1 :(得分:2)
你可能还想尝试Nvidia PhysX,除了它的名字所暗示的(你想要模仿汽车物理学是让我想到它的原因),某些实用程序也暴露了许多功能,例如碰撞检测,四元数学等。
我正在使用Ogre,一个开源图形引擎(到目前为止; - )......在OpenGL-DirectX和Linux-Microsoft之间切换相对容易),这也有很多内容。
既然你已经知道如何编写代码,我会建议上面的内容是可行的,而不是替代方案,而是开放源代码;所以你只需重新发明你想要的轮子部分。