0

我有一个 pygame.Timer 在我的游戏中运行,每秒 32 次调用绘图函数。绘图方法从我屏幕上的所有元素中获取位置并相应地对它们进行 blits。但是,我希望主角走得比其他物体移动得慢。

我应该专门为它设置一个计时器,还是应该只对相同的帧进行多次blit?有没有更好的方法呢?朝着正确的方向前进会很棒:)

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

4

1 回答 1

1

您的步行周期帧(像所有运动一样)应该是绝对时间的函数,而不是帧数。例如:

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
于 2009-10-29T13:37:12.167 回答