2D 碰撞检测和 OpenGL 的东西

Posted

技术标签:

【中文标题】2D 碰撞检测和 OpenGL 的东西【英文标题】:2D collision detection and stuff with OpenGL 【发布时间】:2010-04-26 03:33:23 【问题描述】:

我正在开发一个简单的 2D openGL 项目。它包含一个可以用键盘箭头控制的主要角色。我让它工作正常。我想要的是可以帮助解释如何使另一个演员对象跟随主要演员的东西。也许是关于openGL的教程。我需要学习的三个主要内容是演员跟随、碰撞检测和某种创建重力的方法。任何能帮助我找到正确方向的好书或教程都会很棒。

【问题讨论】:

【参考方案1】:

您可以使用像 Chipmunk Physics 这样的物理库,它可以让您在两个物体之间附加弹簧和物体,并检测它们何时相互碰撞以及其他物体。

【讨论】:

【参考方案2】:

一个预卷库会很好,但是如果你要进行任何类型的游戏编程,你所描述的概念是你需要知道的:

让一个演员跟在另一个演员后面的一个简单方法是让主角在每次移动时存储其位置。将这些位置以几个值的延迟提供给尾随 Actor - 延迟越长,它们移动得越远。简单,但不处理动态碰撞(其他角色移动块碰撞。)

2D 中的碰撞检测可以简单地使用轴对齐 (AA) 边界框。搜索此内容,您将看到所需的 4 个 if 左右。

重力只是在每个游戏循环中为每个对象添加一个固定的速度(通常是向下的)。这是恒定的加速度,这正是重力的工作原理。

【讨论】:

如何让演员移动到特定点?我知道如何使用键盘命令使对象移动,但我不知道如何使另一个对象移动到特定点。 形成一个从当前位置到新点的向量。规范化它。现在将该向量乘以您希望演员移动的标量速度。它现在将以该速度向您的点移动。当它超过该点时,将其设置为该点,您就完成了。

以上是关于2D 碰撞检测和 OpenGL 的东西的主要内容,如果未能解决你的问题,请参考以下文章

2D游戏中常见的碰撞检测处理持续更新

设置碰撞检测,然后在 2D 游戏中处理碰撞

unity3d 碰撞检测

OpenGL:关于处理碰撞检测和顶点数据的建议?

在 OpenGL 中检测碰撞

OpenGL 3.0 窗口碰撞检测