实施自己的2D游戏引擎
首先,您会认为,当有那么多游戏引擎时,为什么要实现自己的游戏引擎。 可能是您不喜欢其中的任何一个,或者只是考虑开始游戏并实现自己的引擎可能是个好主意,那么请不要这样做,并且本文可能不适合您。 但是,如果您(像我一样)想要学习物理引擎的精髓,这可能是一个很好的练习。 这是最终结果的演示,您可以在我的GitHub上找到代码。 在本文中,我将不提供任何代码段,因为您可以在上面提供的GitHub链接中找到该代码段,但更多地说明了如何将它们组合在一起。 首先,我们将从一些基本假设开始: 1.所有物体都是刚性物体,因此它们在撞击时不会变形。 2.刚体的碰撞形状为凸形,非凸形应以凸形为边界进行碰撞检测。 2.物理模拟以恒定的帧速率(通常为60 fps)运行。 3.无论我要描述的是什么,都已针对2D实现,但大多数总体思路也适用于3D。 另外,我所描述的过程是我已经实现的过程,不同的游戏引擎倾向于使用不同的模型或优化。 总览 为了使物理引擎正常运行,它应该执行以下三个基本操作: 1.它应该能够预测在任何给定时间点的平移特性,例如位置,速度,加速度和旋转特性,例如方向,角速度,扭矩。 2.它应该能够检测到正在碰撞的物体。 3.它应该能够正确解决由于这些碰撞而产生的脉冲。 计算属性…