2011-04-23 162 views
1

我正在开发保龄球游戏。我无法实现碰撞检测,球运动(力和摩擦)和旋转等物理。任何人都可以请帮我吗?在游戏中实现物理

+0

谷歌是你的朋友。寻找一些物理课程 – BlackBear 2011-04-23 19:42:29

+0

不要忘记接受答案:P – 2011-04-23 20:23:37

回答

3

物理我们不能教你,但MIT will

如果这是您的第一款游戏,并且您正在同时学习图形编程,那么我会建议您使用预建的物理库(例如Bullet)。

编辑:有一个物理引擎的大名单here

1

我可以建议你使用tokamak物理引擎,如果你不想自己动手这一切。我记得习惯这种引擎并不需要很多时间。

或者你可以找到另一个物理引擎。

0

最好的办法是使用物理库,如Open Dynamics Engine。 ODE有一个C/C++接口,因为你标记为C++,它可能对你有用。它是开源的,速度非常快,适用于游戏。如果你真的想进入物理学并尝试实现自己,那么这是相当多的工作,但如果你遇到这种情况就很有趣。

其基本思想是跟踪所有游戏区对象(球,别针,地板等)的所有物理参数(位置,速度,加速度,旋转速度等)。然后在规则的时间间隔内,比如说每10毫秒,更新物理参数,使其在这个时间间隔内变化,说明所有物理定律(物理定律)和物理相互作用(碰撞,摩擦,其他施加的力)。取出输出并重新绘制比赛场地对象。

这就是简单的解释。还有很多其他的事情需要担心,比如数值稳定性和性能,当你有很多比赛场对象进行交互时。当您尝试对除最简单的gemoetrical基元以外的其他东西进行碰撞检测时,数学也会变得非常复杂。这就是为什么最好学习第三方引擎,如果你只是想专注于你的游戏。