Я использую систему синхронизации, где я получаю дельту (количество миллисекунд, прошедших каждый кадр, 60 кадров в секунду).
Прежде чем использовать тайминг, я посчитал кадры и сделал что-то вроде этого:
if(frames % 60 == 0) /*do something*/;
frames++;
Но я не могу использовать то же самое с дельтой:
if(milliseconds % 1000 == 0) /*do something*/;
milliseconds += delta;
Дельта изменяется каждый раз, и миллисекунды не будут кратны 1000 в секунду.
(я использую Java, но это не совсем актуально.)
Edit:
If (миллисекунды - prev_milliseconds> = 1000) от Стаса Макутина работает в основном.
Но в части моего кода есть что-то вроде этого:
if(frames % 60 == 0){
...
}
if(frames % 60 == 30){
...
}
if(frames % 40 == 0){
...
}
Есть ли способ сделать это без использования prev_millisecond1, prev_millisecond2 и т. Д. (Т. Е. Несколько переменных prev_millisecond.)