Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   таймер или счетчик (http://www.flasher.ru/forum/showthread.php?t=211209)

delphic 13.07.2015 08:56

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

ZackMercury 13.07.2015 09:39

Что такое "счётчик"?

callme 13.07.2015 09:44

Вариант №1
Цитата:

TimerEvent.TIMER
TimerEvent.TIMER
рендер
TimerEvent.TIMER
рендер
TimerEvent.TIMER
TimerEvent.TIMER
рендер

Вариант №2
Цитата:

Event.ENTER_FRAME
рендер
Event.ENTER_FRAME
рендер
Event.ENTER_FRAME
рендер

Зачем рассчитывать новые позиции объектов на экране (нагружать проц), ведь рендер может случиться не сразу, а после следующего TimerEvent.TIMER.

Поэтому я не использую TimerEvent.TIMER.

delphic 13.07.2015 09:57

Цитата:

Сообщение от ZackMercury (Сообщение 1184872)
Что такое "счётчик"?

я имел в ввиду например
имеется частота кадров к примеру 60
вот за минуту код отрабатывается 60
скажем я поставил таймер на минуту,что бы передвинуть объект например
или
лучше я поставлю условие что если счетчик достиг 60 то передвинуть объект

caseyryan 13.07.2015 10:03

Цитата:

Зачем рассчитывать новые позиции объектов на экране (нагружать проц), ведь рендер может случиться не сразу, а после следующего TimerEvent.TIMER.

Поэтому я не использую TimerEvent.TIMER.
Есть же event.updateAfterEvent(); если надо, чтобы обязательный рендер был.
Цитата:

имеется частота кадров к примеру 60
вот за минуту код отрабатывается 60
При частоте 60 кадров, код отрабатывает 60 раз в секунду, а не в минуту, соответственно в минуту 3600 раз

Цитата:

скажем я поставил таймер на минуту,что бы передвинуть объект например
или
лучше я поставлю условие что если счетчик достиг 60 то передвинуть объект
Какая-то полная каша. Для начала неплохо бы доходчиво сформулировать свой вопрос.
Цитата:

было как то сказано что таймер лучше чем использование счетчика, может тормозить игра на старых компах, но так ли это,в чем конкретно все таки лучше таймер
Можно пример, где это было сказано?
Я предполагаю, что речь об ENTER_FRAME vs. TIMER. Если это так, то суть не в том, какой использовать, а в том, чтобы рассчитать сколько времени прошло с момента последнего обновления, и передвинуть объекты на столько, на сколько они могли при текущей скорости и направлении передвинуться за это время.
Тормозят оба. К слову, и ENTER_FRAME и TIMER в as3 основаны на таймере, и если среда подвисает по каким-то причинам, то и один и другой подвиснут вместе с ней

ZackMercury 13.07.2015 10:04

Цитата:

имеется частота кадров к примеру 60
вот за минуту код отрабатывается 60
За минуту?

Цитата:

скажем я поставил таймер на минуту,что бы передвинуть объект например
А чем интерфейс Flash IDE не угодил? Там можно двигать что куда угодно.

Цитата:

лучше я поставлю условие что если счетчик достиг 60 то передвинуть объект
Никто так не делает.

callme 13.07.2015 11:04

Цитата:

Сообщение от caseyryan (Сообщение 1184875)
Есть же event.updateAfterEvent(); если надо, чтобы обязательный рендер был.

Что выбрать из этих двух вариантов и почему?

delphic 13.07.2015 11:57

Цитата:

Сообщение от caseyryan (Сообщение 1184875)
Есть же event.updateAfterEvent(); если надо, чтобы обязательный рендер был.

Тормозят оба. К слову, и ENTER_FRAME и TIMER в as3 основаны на таймере, и если среда подвисает по каким-то причинам, то и один и другой подвиснут вместе с ней

вот я то не помню где было утверждение о том что лучше использовать timer, вот я и подумал с чего бы то это timer лучше enter_frame.

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

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

Zebestov 13.07.2015 12:36

Таймер — фигня.
Другое дело, что привязка к FPS не гарантирует равномерного течения процесса.
В таких случаях в каждом кадре просто засекают время, прошедшее с последнего рендера, с помощью getTimer() и делают с ним одно из двух:
– подставляют в F(t), если имеется функциональная зависимость от времени
– высчитывают, сколько раз нужно вызвать какой-то метод, скажем, update(), если имеем дело с дискретными вычислениями (а это все физ. движки как минимум)

delphic 13.07.2015 13:31

Цитата:

Сообщение от Zebestov (Сообщение 1184882)
Другое дело, что привязка к FPS не гарантирует равномерного течения процесса.

на сколько это критично? совсем прям видно не вооруженным глазом? вот этот момент мне интересен.


Часовой пояс GMT +4, время: 19:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.