![]() |
таймер или счетчик
Здравствуйте, было как то сказано что таймер лучше чем использование счетчика, может тормозить игра на старых компах, но так ли это,в чем конкретно все таки лучше таймер, или нет разницы.Разве так же на старых компах не будет тормозить игра с таймер.Вообщем хотелось бы мнения услышать
|
Что такое "счётчик"?
|
Вариант №1
Цитата:
Вариант №2 Цитата:
Зачем рассчитывать новые позиции объектов на экране (нагружать проц), ведь рендер может случиться не сразу, а после следующего TimerEvent.TIMER. Поэтому я не использую TimerEvent.TIMER. |
Цитата:
имеется частота кадров к примеру 60 вот за минуту код отрабатывается 60 скажем я поставил таймер на минуту,что бы передвинуть объект например или лучше я поставлю условие что если счетчик достиг 60 то передвинуть объект |
Цитата:
Цитата:
Цитата:
Цитата:
Я предполагаю, что речь об ENTER_FRAME vs. TIMER. Если это так, то суть не в том, какой использовать, а в том, чтобы рассчитать сколько времени прошло с момента последнего обновления, и передвинуть объекты на столько, на сколько они могли при текущей скорости и направлении передвинуться за это время. Тормозят оба. К слову, и ENTER_FRAME и TIMER в as3 основаны на таймере, и если среда подвисает по каким-то причинам, то и один и другой подвиснут вместе с ней |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
по некоторым причинам хочу использовать ENTER_FRAME а не timer, вот и услышав где то на сайте по свешенному флеш что таймер лучше чет ENTER_FRAME, задумался почему???как так может быть))) отсюда и топик появился можно об этом чуть подробней? как бы своими словами,не техническим языком Если это так, то суть не в том, какой использовать, а в том, чтобы рассчитать сколько времени прошло с момента последнего обновления, и передвинуть объекты на столько, на сколько они могли при текущей скорости и направлении передвинуться за это время |
Таймер — фигня.
Другое дело, что привязка к FPS не гарантирует равномерного течения процесса. В таких случаях в каждом кадре просто засекают время, прошедшее с последнего рендера, с помощью getTimer() и делают с ним одно из двух: – подставляют в F(t), если имеется функциональная зависимость от времени – высчитывают, сколько раз нужно вызвать какой-то метод, скажем, update(), если имеем дело с дискретными вычислениями (а это все физ. движки как минимум) |
Цитата:
|
Дело даже не в том, насколько это видно. Просто если fps по каким-то причинам просядет, то все процессы игры замедлятся. Как правило на это пофиг. Но если игра требует хоть какой-то защиты от читеров, то лучше эти процессы (вычисление игровых процессов и их отображение) разделить.
|
Цитата:
трудно спрыгнуть. ну так игра и зависит же от fps,если просядет, так она и с таймером сядет, не могу понять |
Цитата:
Тогда игрок и не заметит, что игра просаживалась. А хотя нет, он похоже про что-то другое. |
Если необходима защита от спидхака, то dt необходимо считать через Date#time. Замедляются как раз таки таймера, дата не изменяется.
Цитата:
Код AS3:
|
Итак имеется таймер на 1 сек
Имеем fps скажем на 60, ставлю счетчик, достигаем 60 останавливаемся (тоже 1 сек) в чем то разница? по существу люди.... меня сейчас именно этот вопрос интересует есть ли она? и какая конкретно |
И таймер, и ФПС может просесть от лагов системы. Нельзя на это полагаться.
|
Цитата:
я то еще даже игры не создал,поэтому я многих моментов не знаю, услышу где то и начинаю беспокоится,а вдруг.Вот если есть у кого мнение другое на сей счет пожалуйста давайте обсудим |
Весь игровой процесс должен быть построен на дельте.
|
Цитата:
Цитата:
|
дабы не создавать новый топик, подскажите как получить сколько установлено fps? this. ????? и
|
Код AS3:
|
| Часовой пояс GMT +4, время: 21:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.