Лучше посчитать n тиков или запустить два отдельных таймера - PullRequest
0 голосов
/ 02 сентября 2011

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

1 Ответ

0 голосов
/ 02 сентября 2011

По сути, вы создаете «игровую петлю», чтобы обновить displayList (в Actionscript) и заново нарисовать ваш вид.Когда игра становится сложной, таймеры и прослушивание событий ENTER_FRAME будут ограничены настройками флэш-плеера для обновления экрана (т. Е. Это FPS) и рендеринга процессора на основе того, что ему поручено обрабатывать.

Для частоты кадровНезависимая анимация, вам, вероятно, следует использовать комбинацию ENTER_FRAME для отслеживания миллисекунд и GetTimer () вызовов, чтобы более точно (с точностью до миллисекунды) вызывать анимации вызовов и нормализовать взаимодействие с различными платформами.

По сути, слушайте событие ENTER_FRAME, проверяйте текущие миллисекунды с момента последнего обновления и, если оно превышает вашу частоту обновления (в миллисекундах), запускайте обновление анимации / состояния: проверьте обнаружение столкновений змей с помощью «direction-block "- обрабатывать, если истина, затем обновлять движение / положение / состояние змеи.

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

Для давней, но интересной дискуссии 3 года назад, посмотрите этот пост на actionscript.org .

...