在pygame中制作平滑的轨道

时间:2011-02-20 17:16:26

标签: python math pygame

如何使用pygame以恒定速度制作平滑的圆形轨道? 我如何计算圆上的x,y?

2 个答案:

答案 0 :(得分:4)

以给定的半径和速度绕着2d点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

答案 1 :(得分:1)

尝试使用极坐标。这很自然:)

如果你没有计算足够的帧以使你的轨道看起来平滑,计算3-4个轨道的中间点来绘制较短的线段,而不计算这些点的游戏状态。使这个半径依赖。这也有助于正确的碰撞检测。