我正在尝试创建一个新游戏,其中车辆沿地面行驶,但也有能力使用推进器暂时悬空。
我对游戏编程比较陌生,但我很擅长用 Java、C、C++ 等进行编码,所以我认为这不是问题(认为游戏的第一次迭代是用 Java 编写的)。我的问题是我从头开始,想不出一种方法让地形成为障碍,这样车辆就不会直接穿过它。我怎样才能让他们受到坠落伤害?
过去人们把我引向复制岛源,因为它已经在里面了,我看到了整个碰撞系统,但到目前为止我还无法理解它,我希望有人愿意帮我一把。
谢谢
-罗芙拉
我正在尝试创建一个新游戏,其中车辆沿地面行驶,但也有能力使用推进器暂时悬空。
我对游戏编程比较陌生,但我很擅长用 Java、C、C++ 等进行编码,所以我认为这不是问题(认为游戏的第一次迭代是用 Java 编写的)。我的问题是我从头开始,想不出一种方法让地形成为障碍,这样车辆就不会直接穿过它。我怎样才能让他们受到坠落伤害?
过去人们把我引向复制岛源,因为它已经在里面了,我看到了整个碰撞系统,但到目前为止我还无法理解它,我希望有人愿意帮我一把。
谢谢
-罗芙拉
你用什么来开发游戏?引擎还是图形库?基本上有三个级别(我喜欢这样想):图形库、图形引擎和游戏引擎。
图形库几乎是你能得到的低级:OpenGL 或 DirectX。当您想绘制地形时,您将绘制为三角形网格,并定义这些三角形的顶点等。
图形引擎是其上的一层。这些例子(至少对于 C++)是 Ogre3D、Horde3D 和 Irrlicht。他们将处理许多较低级别的命令,并让您从更高级别的角度关注图形。
游戏引擎几乎可以处理任何与图形相关的事情。这些(同样是 C++)的例子是 Unity 和 UDK。他们通常可以为你做很多游戏编程。您可能会在建模程序(3dsmax 等)中绘制地形,将其导出为某种格式,然后引擎将对其进行处理并确切知道如何处理它。
这三个我都玩过,发现图形库最有趣。但是,他们可能会花费最长的时间来制作游戏。它们还涉及更多的数学(线性代数)。
至于与地形的碰撞检测。您必须了解构成该地形的三角形。如果您使用的是游戏引擎,您应该能够将地形网格和角色网格存储在某种“场景节点”中,它会自动处理碰撞检测。但是,如果您自己处理所有事情,有许多流行的算法可以做到这一点:
我编写了一个示例 OpenGL 程序,它基本上让一个由边界框表示的角色在需要碰撞检测的地形周围行走。如果您对它的工作原理更感兴趣,请告诉我。
您可以通过多种方式处理坠落损坏:
您可能还想尝试 Nvidia PhysX,除了它的名字所暗示的(你想对汽车物理建模是我想到的),某些实用程序还提供了许多功能,例如碰撞检测、四元数数学等
我将它与 Ogre 一起使用,这是一个开源图形引擎(到目前为止 ;-)...使得 OpenGL-DirectX 和 Linux-Microsoft 之间的切换相对容易),它也有很多内容。
既然您已经知道如何编写代码,我建议上述内容是可行的,不是替代品,而是开放式源代码;这样你就只需要重新发明你想要的轮子的部分。