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