Медленная 2D анимация - PullRequest
       1

Медленная 2D анимация

0 голосов
/ 13 марта 2012

Я бы хотел отобразить сложную анимацию на экране, используя 2D-рисование. Правильный ли следующий подход?

  1. Создание таймера
  2. Сделать рисование и сделать недействительным окно внутри обработчика тика таймера

Если да, что произойдет, если машина конечного пользователя работает очень медленно? Будет ли список ожидающих сообщений WM_PAINT слишком длинным? Будут ли отброшены некоторые из них?

Каков наилучший подход для создания анимации «Adaptive-FPS» на основе скорости машины? Может быть, обработка события OnIdle приложения?

Спасибо.

1 Ответ

0 голосов
/ 13 марта 2012

Просто чтобы уточнить мой комментарий, вам, вероятно, нужен подход, при котором вы отслеживаете, сколько времени прошло, и соответственно обновляете кадры.

Я предполагаю, что у вас есть какая-то функция, которая вызывается так часто, возможно, из вашего таймера, что-то вроде tick(float elapsedTimeInSeconds).

Допустим, значение elapsedTimeInSeconds равно 0,5, и вы отображаете один кадр каждые 0,1 секунды. Поэтому вы бы пропустили пять кадров вперед.

Нечто подобное может работать на вас. AFAIK, именно так многие игры решают эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...