如何使用增量毫秒来每x毫秒执行一次?
问题描述:
我正在使用计时系统,我得到的增量(每帧通过的毫秒数,60 fps)。如何使用增量毫秒来每x毫秒执行一次?
之前,我使用的定时,我算框架,做了这样的事情:
if(frames % 60 == 0) /*do something*/;
frames++;
但我不能用同样的事情三角洲:
if(milliseconds % 1000 == 0) /*do something*/;
milliseconds += delta;
三角洲的每一次变化,毫秒不会是每秒1000的倍数。
(我使用Java,但是这并不真正相关。)
编辑:
的,如果 - 从斯塔斯Makutin(毫秒prev_milliseconds> = 1000)的作品大部分。 但在我的代码的一部分,也有一些是这样的:
if(frames % 60 == 0){
...
}
if(frames % 60 == 30){
...
}
if(frames % 40 == 0){
...
}
有没有办法做到这一点,而无需使用prev_millisecond1,prev_millisecond2等
答
大概的东西(即多个prev_millisecond变量。)像这样将工作:
prev_milliseconds = 0;
...
if (milliseconds - prev_milliseconds >= 1000)
{
/* do somthing */
prev_milliseconds = milliseconds;
}
milliseconds += delta;
但是如果你的代码的每一帧后,仍然引发为什么不继续计数帧和使用旧代码?
我以前只是计算帧数,但我想增加更准确的时间(因为我的程序在不同的计算机上以不同的速度运行)。所有对象移动时的速度都是像素/帧,但现在我将所有内容都改为像素/秒。 – user1221546 2012-03-23 22:17:30