在使用glfwGetTime()在我的C ++项目中进行一些研究和调试之后,我无法为我的项目制作游戏循环。到目前为止,我真的只在Java中使用纳秒,在GLFW网站上它声明该函数以 秒 返回时间。如何使用glfwGetTime()进行固定时间步循环?
我现在拥有的东西 -
while(!glfwWindowShouldClose(window))
{
double now = glfwGetTime();
double delta = now - lastTime;
lastTime = now;
accumulator += delta;
while(accumulator >= OPTIMAL_TIME) // OPTIMAL_TIME = 1 / 60
{
//tick
accumulator -= OPTIMAL_TIME;
}
}
答案 0 :(得分:3)
您需要的只是此代码用于限制更新,但保持渲染尽可能高的帧。代码基于此tutorial,这很好地解释了它。我所做的就是用GLFW和C ++实现相同的原则。
GradleBuilder.prototype.build = function(opts) {
var wrapper = path.join(this.root, 'gradlew');
var args = this.getArgs(opts.buildType == 'debug' ? 'debug' : 'release', opts);
return Q().then(function() {
return spawn(wrapper, args, {stdio: 'inherit'});
});
};
你应该有一个用于更新游戏逻辑的函数 update()和一个用于渲染的 render()。希望这会有所帮助。