使用PyOpenGL和Pygame在3d下进行盒盒碰撞检测



我正在编写一个播放器类,除其他事项外,具有网格属性(我使用py3d库和其中的网格类)和碰撞器(我需要实现自己的类)。碰撞器是一个简单的立方体,应该有一个方法来确定它是否与另一个碰撞立方体碰撞。我有一个允许你旋转和移动3d物体的类,我从它继承了collider。主要的问题恰恰是编写一个碰撞检查函数

我尝试使用Pygame内置的方法来检测碰撞,但它不起作用,因为当摄像机被移除时,对撞机保持相同的大小,并且它不能旋转。我数学不好,我找到的所有指南都是c语言的。game example

使用PyOpenGL和Pygame在3D中检测盒盒碰撞的一种方法是使用Bullet物理引擎。Bullet是一个3D物理引擎,可用于检测碰撞、施加力和模拟刚体的运动。要使用Bullet,您需要将collider类实现为Bullet主体,然后使用Bullet函数来检测collider对象之间的碰撞。你也可以使用Bullet函数来旋转和移动碰撞器,这将允许你保持相同大小的碰撞器,而不管相机的位置。

这里有一个关于如何集成项目符号的教程的链接http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-a-physics-library/