Ell*_*lle 9 python pygame physics
是否有适用于Linux的Python最新物理库?我刚刚使用PyGame进入Python,但PyGame缺少物理库并不酷.我花了大约两个小时试图找到一个好的物理库,但这就像试图抓油; 我似乎无法做到这一点.
我根本不需要物理引擎; 我想要做的就是将物体编程为"跳跃"然后再回到地面.似乎有一些简单的碰撞(PyGame可以处理,我认为),但实际的跳跃计算让我感到困惑.如果事实证明没有任何好的可用物理库,问题似乎很简单,我可能只是试图找到一个基本的加速度方程和一个引力方程,并尝试应用那些......我想避免然而,要做到这一点.
谢谢你的帮助.
您只需要基本的物理运动学方程即可。即使问题已经得到解答,如果我是你,我仍然会手动完成,因为使用库似乎有点矫枉过正。启动速度方程:
velocity = initial velocity + (acceleration * time)
Run Code Online (Sandbox Code Playgroud)
从那里,我们整合以找到位置:
position = initial position + (initial velocity * time) + (acceleration * time^2)/2
Run Code Online (Sandbox Code Playgroud)
您的跳跃需要计算角色的 y 位置,因此只需使用该方程来计算 y 位置和玩具的初始速度和加速度。标准重力加速度为 -9.8 米每秒^2(至少在地球表面上 - 不同的行星有所不同)。无论你的角色在什么位置,都从初始位置开始,如果地面对你来说是 0,则从 0 开始。
所以:
y = vt + (-4.9)t^2
Run Code Online (Sandbox Code Playgroud)
选择一个初始速度v值以在跳跃开始时提供向上运动,t 应该是自他开始跳跃以来经过的游戏时间。
您只需要一行代码即可完成此操作,无需任何库!
编辑:处理着陆时要做什么。
所以在现实世界中,加速度是由不平衡力引起的。重力始终作用在您身上,但是当您站在地面上时,重力会被地面的“法向力”抵消并抵消。只要你站立的地面足够坚固,足以支撑你的体重,地面就会向上推并反重力,你就不会加速向下。因此,在游戏中,如果您实际上并未模拟力,只需在角色接触地面时将加速度从 -9.8 更改为 0 即可。如果地面平坦,则跳跃结束时position = initial position
| 归档时间: |
|
| 查看次数: |
12985 次 |
| 最近记录: |