Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.07.2009, 19:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 11  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Вы о чем?..
ENTER_FRAME будет вызываться каждый раз, когда флеш-плееру НАДО отрисовать кадр. Сказали - он рассылает событие, но экран не обновляет. После него прямо перед обновлением экрана идет событие RENDER.
И зачем перекладывать "с нестабильного (???) ENTER_FRAME" на "стабильный Timer" ?
В 1 случае вся игра затормозит из за падения фпс, во 2 случае - фп скорее повеситься, а если и не повеситься - то на экране у юзера будет черти что.
Единственное, что может быть в реалтайм мморпг сие рывки будут правильнее общих тормозов всего и вся, но если у автора появился этот вопрос - он не мморпг делать собрался.

Старый 22.07.2009, 20:07
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 12  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Затем перекладывать на таймер, что это дает более высокое и стабильное обновление экрана!
Вот в этой http://www.8bitrocket.com/newsdispla...newspage=10248 статье, по-моему все замечательно раскрыто.

Старый 22.07.2009, 20:32
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 13  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Psycho Tiger, бред.
ENTER_FRAME - вызывается когда происходит вхождение в новый кадр. то есть предыдущий отрисован.
RENDER - рассылается, на сколько я помню, если вызывать Stage#invalidate()
причём тут мморпг я вообще молчу.

Старый 22.07.2009, 21:46
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 14  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
Psycho Tiger, бред.
ENTER_FRAME - вызывается когда происходит вхождение в новый кадр. то есть предыдущий отрисован.
RENDER - рассылается, на сколько я помню, если вызывать Stage#invalidate()
причём тут мморпг я вообще молчу.
Цитата:
ENTER_FRAME будет вызываться каждый раз, когда флеш-плееру НАДО отрисовать кадр. Сказали - он рассылает событие, но экран не обновляет.
Примерно это я имел ввиду. Кадр отрисован, и идет вхождение в новый кадр - тогда и вызывается.
RENDER надо заставить рассылаться вручную - это другой вопрос, если нужно поймать событие, когда уже всё готово к отрисовке, но отрисовка ещё не пошла - его мы и ловим.
Просмотрел бегло статью. Самый веский аргумент - потеря фпс в IE. Давно ещё тесты проводил, это не относиться к "тормозам" - как самый быстрый тест - увеличиваем фпс вдвое и смотрим - если бы с ENTER_FRAME были реально тормоза - фп готов был бы повеситься, а нет, все идет нормально. Как учесть - вполне, но все же отказываться от ENTER_FRAME я пока не собираюсь - слишком сомнительны условия.

Да, про реалтайм мморпг, что я хотел сказать:
если фпс вдруг падает, то ENTER_FRAME реже рассылается в единицу времени. Если он реже рассылается, значит идет меньше пересчетов, но игровые константы не меняются, то есть попросту говоря в игре как бы замедляется время. В обычной синглплеер игре это не очень критично, если на старых машинах в критичные моменты упадет 10 фпс.
Если игра онлайновая, то придав какому нибудь обьекту "а ля" бомба, падающая сверху позицию и ускорение - она полетит вниз, и при столкновении с землей она взорвется. При подобном падении фпс эта бомба взорвется до соприкосновения с землей, что вызовет негодования у игрока. В случае с таймером - игра пойдет менее плавно, рывками, но бомба упадет именно в срок. Так понятней, что я имел ввиду?

Старый 22.07.2009, 21:54
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 15  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Если фпс ниже заданного, ваше "стабильное" событие таймера вообще может не вызываться.

Добавлено через 3 минуты
А самый лучший вариант, считать физику в ENTER_FRAME перед отрисовкой. Только нужно замерять прошедшее время с предыдущего кадра и считать физику сколько нужно за этот промежуток. Так на быстрых компах будет ниже нагрузка на проц, а на медленных тачках реже будет выполняться перерисовка, при той же скорости мира.
__________________
TankiOnline
Я разработчик Alternativa3D

Старый 22.07.2009, 22:41
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 16  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Psycho Tiger, у Вас каша в голове. зачем заставлять рассылаться RENDER? чем он будет от ENTER_FRAME отличаться? Вы отличаете тормоза от ограничения ФПС? сколько ММОРПГ Вы написали? Вы когда-нить слышали про формулу зависимости от времени? Вы вообще понимаете как таймер в АС3 работает?

Яски, ну хоть у Вас здравые мысли в голове.

Старый 22.07.2009, 22:49
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 17  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
зачем заставлять рассылаться RENDER?
прозвучал вопрос о событии "прямо" перед отрисовкой. Я сказал, что это не ENTER_FRAME, а RENDER.
Цитата:
Вы отличаете тормоза от ограничения ФПС?
Если ФПС ниже положенного, это тормоза.
Цитата:
сколько ММОРПГ Вы написали?
0.
Цитата:
Вы когда-нить слышали про формулу зависимости от времени?
Бывало.
Цитата:
Вы вообще понимаете как таймер в АС3 работает?
Существуют мысли, что как более стабильный и удобный setInterval

Да, у Яски хорошая идея.

Старый 22.07.2009, 22:53
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 18  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
прозвучал вопрос о событии "прямо" перед отрисовкой. Я сказал, что это не ENTER_FRAME, а RENDER.
ну так это неправда.
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Если ФПС ниже положенного, это тормоза.
а моём понимании, это когда проц не справляется с задачей.
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Существуют мысли, что как более стабильный и удобный setInterval
а как setInterval работает Вы понимаете?

Старый 22.07.2009, 23:01
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 19  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
В AS3 добавлено новое событие Event.RENDER (flash.events.Event.RENDER), которое рассылается после enterFrame, но перед тем, как экран флеш-плеера обновится. (пруфлинк)
Что то ещё произойдет после RENDER`а, но перед отрисовкой? Буду рад, если скажешь, что именно и где я не прав.

Цитата:
а моём понимании, это когда проц не справляется с задачей.
Если проц не справляется с задачей - это вызывает тормоза. Смысл-то один. Или "тормоза" используется здесь не в плане что всё работает медленнее, чем должно, а это какой-то новый термин?
Цитата:
а как setInterval работает Вы понимаете?
Через определенные промежутки времени вызывает функцию/метод. Timer рассылает событие. Нет, я не прав?

Старый 22.07.2009, 23:37
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 20  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
В AS3 добавлено новое событие Event.RENDER (flash.events.Event.RENDER), которое рассылается после enterFrame, но перед тем, как экран флеш-плеера обновится. (пруфлинк)
Что то ещё произойдет после RENDER`а, но перед отрисовкой? Буду рад, если скажешь, что именно и где я не прав.
везде прав, кроме места применения. рендер будет вызываться ровно столько раз сколько и enter_frame, собственно, тогда нафига он тут нужен?
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Если проц не справляется с задачей - это вызывает тормоза. Смысл-то один. Или "тормоза" используется здесь не в плане что всё работает медленнее, чем должно, а это какой-то новый термин?
оно работает не совсем медленнее. просто искусственно занижен ФПС. проблема решается тем, что все расчёты делаются не в зависимости от количества кадров, а от времени, которое прошло.
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Через определенные промежутки времени вызывает функцию/метод. Timer рассылает событие. Нет, я не прав?
неправы в двойне. во-первых никакого события setInterval не рассылает, а во вторых, совсем не через определенные.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
fps , отрисовка воды
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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