繁体   English   中英

FPS控制游戏速度

[英]FPS controlling game speed

背景资料

我一直在使用LWJGL开发游戏,而我好奇不使用Display.sync(60)函数(将fps限制为60)就可以从运行游戏每秒获得多少帧。 在注释掉代码后,我偶然发现游戏速度以9000 fps的速度更新,从而使游戏滴答声每秒运行9千次。

如何设置游戏计时器以防止fps造成游戏实际运行速度方面的问题? 我知道我需要将两个计时器分开,但是(在Java中)如何/哪种方式最有效?

TheCodingUniverse在此处提供了很棒的教程: http ://thecodinguniverse.com/lwjgl-frame-rate-independent-movement/

但是,基本答案是,通过保存最后一个System.currentTime()将帧移动,然后将其与此System.currentTime()比较。 然后在移动时就像object.move(x * delta, y * delta);

要引用以上链接,

// Under the class definition
private static long lastFrame;
private static long getTime() {
return (Sys.getTime() * 1000) / Sys.getTimerResolution();
}
private static double getDelta() {
long currentTime = getTime();
double delta = (double) currentTime - (double) lastFrame;
lastFrame = getTime();
return delta;
}
// In initialization code
lastFrame = getTime();
// In game loop
long delta = getDelta();
movement_x += dx * delta;

希望对您有所帮助:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM