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

Я хочу построить игру на брекауте. Когда я хочу переместить рамку с помощью клавиши со стрелкой, это не работает. Поэтому я прочитал несколько статей и увидел, что для этого они используют таймер. Можете ли вы дать мне причину, почему они это делают?

2 ответа

Решение

Если вы думаете об этом, ответ довольно прост. Когда вы нажимаете и удерживаете клавишу со стрелкой, вам нужно выяснить, насколько далеко лопасть должна двигаться вдоль своей оси X.

Без таймера невозможно контролировать новое смещение n истекшие секунды

Основная формула физики D = S * T (Расстояние = Скорость * Время)

Всякий раз, когда мы нажимаем клавишу, таймер может быть запущен, мы затем находим новое расстояние, которое будет добавлено / вычтено к текущей позиции, умножив переменную постоянной скорости на истекшее время.

Это также должно обеспечивать движение жидкости, вместо того, чтобы колебаться на фиксированном расстоянии при каждом нажатии клавиши.

Теоретически есть два подхода:

  • Цикл, запрашивающий ввод, цикл рисования анимации
  • По таймеру сделать шаг анимации и вызвать перерисовку, а также установить обработчики ввода

Второй подход - это то, что используется в текущих операционных системах, так как он не блокирует, не опрашивает, события не связывают разные системные аспекты. DOS сделал это иначе.

Таким образом, программы следуют более косвенному подходу, основанному на событиях.

Другие вопросы по тегам