有没有办法在不依赖于fram率的情况下编写游戏?

Alf*_*fro 1 objective-c ios sprite-kit

我正在编程一个iOS游戏,我使用方法更新很多东西,这是在游戏速度刷新时调用(目前每秒60次),但问题是如果帧速率下降(例如通知,或者游戏中的任何行为,当被调用时,它会使fps下降一点......)然后错误来了....

一个快速的例子是,如果我有一个80张图片的动画,40个用于跳跃,40个用于下降,我需要1,2秒来运行动画,所以如果跳跃花费1,2秒就可以了,动画会运行.但是如果我的fps下降到30,那么动画将会减少,因为它需要2,4秒来运行动画,但跳跃仍然是1,2秒.这只是一个快速的例子,如果帧速率下降,游戏中有很多意想不到的行为,所以我的问题是,游戏开发者是否非常依赖帧速率或有一种方法可以避免这些fps-bug?(编程或任何技巧的另一种方式?)

Zev*_*erg 6

根据时间而不是帧数来确定时间.因此,在每个帧上保存时间戳,并在下一帧上计算已经过去的时间,并根据您的理想帧速率,计算出要前进的帧数.在全速运行时,您不应该注意到差异,当帧速率下降时,您的动画可能会变得不稳定,但运动将永远不会超过应有的1帧.

编辑:正如uliwitness指出的那样,要小心你使用的功能,这样你就不会遇到问题,例如,当计算机进入睡眠状态或游戏暂停时.

  • 所以每个游戏循环都是如此有效. (3认同)