【问题标题】:Basic 3D OpenGL collision detection C++基本 3D OpenGL 碰撞检测 C++
【发布时间】:2016-11-20 22:12:33
【问题描述】:

我目前正在使用 C++ 开发一个非常基本的 3D OpenGL 游戏,作为一个小型大学项目的一部分。然而,我们并没有从老师那里得到很多见解,而且只有非常有限的文档,而且时间框架也很短,所以我现在有点迷失了。

我的游戏是正交平面上的坦克战,看起来与我在下面绘制的图像一模一样。每个坦克(A 和 B)都可以由不同的玩家控制,并且每个人都可以发射射弹,这应该会在碰撞时影响另一辆坦克的得分。

我的问题是,对坦克有效实施碰撞的最简单方法是什么? (坦克与坦克、坦克与地图边界以及坦克与任何类型的平行六面体物体,如图片中心的物体 - 相同的东西,但适用于从坦克炮塔发射的射弹)。

理想情况下,不需要使用外部物理引擎,但如果实现可以轻松完成,也可以接受。目前,我只使用 GLUT 库。

【问题讨论】:

    标签: c++ 3d collision-detection


    【解决方案1】:

    下载 Box2D (http://box2d.org) 并将其集成到您的项目中。

    除非您的项目是实现物理引擎,否则不要费心自己动手。您将更好地花时间学习如何集成库以及正确的物理引擎如何工作。

    然后,您可以轻松地为您的坦克使用箱形对撞机,为射弹使用圆形,为您的周边使用 4 条线。您可以创建回调以在弹丸与另一辆坦克相撞时通知您。

    您将不得不使用力和扭矩来移动和旋转您的坦克,而不仅仅是更新它们的位置。但是,如果您要自己实现物理,则可能无论如何都必须这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多