デルタを取得するタイミング システムを使用しています (各フレームが経過したミリ秒数、60 fps)。
タイミングを使用する前に、フレームを数えて次のようにしました。
if(frames % 60 == 0) /*do something*/;
frames++;
しかし、デルタで同じことを使用することはできません:
if(milliseconds % 1000 == 0) /*do something*/;
milliseconds += delta;
デルタは毎回変化し、ミリ秒は毎秒正確に 1000 の倍数にはなりません。
(私はJavaを使用していますが、それは実際には関係ありません。)
編集:
Stas Makutin の if(milliseconds - prev_milliseconds >= 1000) は、ほとんどの場合機能します。しかし、私のコードの一部には、次のようなものがあります。
if(frames % 60 == 0){
...
}
if(frames % 60 == 30){
...
}
if(frames % 40 == 0){
...
}
prev_millisecond1、prev_millisecond2 などを使用せずにこれを行う方法はありますか (つまり、複数の prev_millisecond 変数)。