在pygame中的Walkcycles和计时

时间:2009-10-29 12:45:24

标签: pygame timing

我有一个pygame.Timer在我的游戏中运行调用绘图功能32次/秒。绘图方法从屏幕上的所有元素获取位置并相应地将它们点亮。但是,我希望主角走动比其他对象移动慢。

我应该专门为它设置一个计时器,还是应该多次对同一帧进行blit?有没有更好的方法呢?向正确的方向推进将是非常棒的:)

(如果有人感兴趣,这里是当前控制要发送到绘图的帧的代码:http://github.com/kallepersson/subterranean-ng/blob/master/Player.py#L88

1 个答案:

答案 0 :(得分:1)

您的步行循环帧(与所有运动一样)应该是绝对时间的函数,而不是帧数。 e.g:

def walk_frame(millis, frames_per_second, framecount, start_millis=0):
    millis_per_frame = 1000 / frames_per_second
    elapsed_millis = millis - start_millis
    total_frames = elapsed_millis / millis_per_frame
    return total_frames % framecount