如何检测与 C++、OpenGL 和 freeglut 的冲突?

Posted

技术标签:

【中文标题】如何检测与 C++、OpenGL 和 freeglut 的冲突?【英文标题】:How do I detect collision with C++, OpenGL, and freeglut? 【发布时间】:2014-03-10 23:38:41 【问题描述】:

我正在制作一个迷宫游戏,我知道如何做所有事情,除了制作它,这样你就不能只是在墙壁上作弊。我在 C++ 中将 freeglut 与 OpenGL 一起使用,我想知道使用碰撞检测的最有效方法(希望不需要使用 freeglut 以外的任何东西)。

【问题讨论】:

就我个人而言,我使用Bullet Physics 来处理我所有的碰撞检测。但是对于一个简单的迷宫游戏,您可以使用 these 之类的算法自己进行碰撞。 【参考方案1】:

OpenGL 仅用于绘图;它使事物在您指定的坐标处出现在屏幕上,但它在决定对象的坐标应该是什么方面不起作用。对于运动和碰撞,您可能需要使用物理库,例如 ODE 或 Bullet。 (还有更大、更商业化的物理系统,如 Havok 和 PhysX,但对于一个简单的项目来说,这些可能是多余的。)

【讨论】:

那么在您提到的物理引擎中,您认为哪一个最适合我正在做的/总体上最好的?顺便说一句,感谢您的快速响应。 Bullet 似乎在游戏中很受欢迎,但我个人没有使用过这些库中的任何一个,而且我对您的迷宫游戏一无所知,所以我无法真正做出明智的推荐。 说实话我对迷宫游戏了解不多,这将是我第一次使用图形,但我只是计划使用基本的视口功能和使用 WASD 键移动相机来滚动它后面跟着一个物体。你觉得哪一个最简单?对不起,如果我是高维护。 我可能会在没有物理库的情况下开始,然后自己检查玩家的边界框是否即将与墙壁相交。如果这被证明是不够的,请通读 Bullet 或 ODE 的文档,了解它如何适合您的程序,如果您有不明白的地方,请回到 SO,提出更具体的问题。跨度>

以上是关于如何检测与 C++、OpenGL 和 freeglut 的冲突?的主要内容,如果未能解决你的问题,请参考以下文章

opengl中的有界框碰撞检测

OpenGL 3.0 窗口碰撞检测

C++ 和 OpenGL 帮助 [关闭]

OpenGLShader错误 检测

C++ 和 OpenGL,VBO 顶点与骨骼信息交错

如何使用 OpenGL 和 GLSL 改变颜色(C++)?