Время кадра 16,66 мс. Как добиться идеальных 60 кадров в секунду, если Sleep() длится всего лишь целые миллисекунды?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Время кадра 16,66 мс. Как добиться идеальных 60 кадров в секунду, если Sleep() длится всего лишь целые миллисекунды?

Сообщение Anonymous »

Мне нравится создавать небольшие игры на C++ и Java, но меня всегда что-то беспокоило, и я никогда не понимал, как это исправить.

Спать на C++ а Java работает только за миллисекунды. Это означает, что если вы это сделаете

Код: Выделить всё

startTime=clock();
-------Execute everything in that frame-----
endTime=clock();
sleep(x-(endTime-startTime));
если x равно 16, вы получите 62,5 кадров в секунду
если x равно 17, вы получите 58,8 кадров в секунду

Ни то, ни другое не является идеальным значением 60 для частоты обновления монитора.

Но я заметил, что в некоторых играх, таких как Warframe, указано «время кадра 16,66 мс». это означает, что их двигатель каким-то образом мог спать с большей точностью.

Так как же получить идеальные 60?

Желательно на C++, так как я сейчас над этим работаю, но ответ и на Java тоже будет полезен

Подробнее здесь: https://stackoverflow.com/questions/275 ... ly-goes-by
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»