我正在用Python编写一个2D重力游戏作为主要机制。
我制作了一些游戏引擎,但我遇到的部分实际上是确定要添加到每个质量的X和Y速度的内容。
所以说我有圆圈A和圆圈B,每个圆圈都有一个位置,一个速度和一个质量。每个都应该相当逼真地拉向另一个,模拟牛顿引力。我怎么做到这一点?
是的,我对测量单位非常模糊。稍后我可以尝试更改变量以适应公式。
答案 0 :(得分:3)
你需要解决每个身体的运动方程。它们将被编写为一组耦合的一阶常微分方程。你将为x和y方向分别写出一个方程式,这将给你加速度作为两个物体之间的重力除以它们各自的质量的函数。
你知道加速度,速度和位移之间的关系。
你最终得到四个耦合常微分方程来解决。使用时间步进解决方案及时推进解决方案 - 明确或隐含,您的选择。
答案 1 :(得分:1)
假设你有一个游戏中量化的时间单位,时钟的“勾号”,如果你愿意,给每个身体一个速度向量(多少,以及在哪个方向,它每个“tick” “)并且对于每个蜱,让彼此的身体基于它们的距离(在其上施加力,除以其质量)将其速度矢量改变一定量。然后,每当你的时钟滴答时,物体会根据它们的速度矢量移动,然后它们的速度矢量会根据它们的净力而改变。只要您决定哪个首先发生 - 加速或动作 - 只要你的蜱足够小,你应该没事。