Как правильно написать игровой цикл в QML?

Что-то у меня не получается сделать привязку движения объекта ко времени затраченному на расчет движения. Игровой цикл взял из примера на хабре - самый последний, со всеми плюшками в виде интерполяции и предсказания =)
Вместо while( game_is_running ) { /*code*/ } поставил Timer { onTriggered: { /*code*/ }}

Получилось вот что: pastebin (pastie)

Откровенно говоря, получилась полная фигня! Шарик падает не плавно, а с плавными подёргиваниями =) как будто кто-то снизу дует на него с разной силой.
Еще, как я предполагал, такой цикл должен был бы отрисовывать состояние объекта одинаково не зависимо от интервала. Но это совсем не так. Если интервал таймера будет не 10, а 1, то шарик падает намного быстрее. Почему? Ведь есть же ограничение по кадрам, так почему его состояние меняется не так, как написано в статье? Я не понимаю.

Есть ли смысл вообще делать игровой цикл таким? Или можно обойтись обычным таймером? Как правильно рассчитывать положение объекта в зависимости от времени?
  • Вопрос задан
  • 525 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы