在pygame中制作平滑轨道
我该如何在pygame中制作一个平滑的圆形轨道,并保持恒定的速度呢?我该如何计算圆上的x和y坐标呢?
2 个回答
1
试试用极坐标吧,这样更自然 :)
如果你计算的帧数不够,导致你的轨道看起来不够平滑,可以计算3到4个轨道中的中间点,画出更短的线段,而不需要在这些点上计算游戏状态。可以让这个半径依赖于其他因素。这样也有助于更准确的碰撞检测。
4
围绕二维点 center
旋转,给定半径和速度。参数 t
是以秒为单位的时间。
def circular_orbit(center, radius, speed, t):
theta = math.fmod(t * speed, math.PI * 2)
c = math.cos(theta)
s = math.sin(theta)
return center[0] + radius * c, center[1] + radius * s