|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2011
Сообщений: 14
|
Производительность флешки на разных компьютерах
Есть флешка - сетевая игра. Подключение через сокет. Все работает. Проблема заключается в том что у всех разные компы с разной производительностью, соответственно на одном компе персонаж может дойти из точки А в точку В быстрее или медленнее чем на другом.
Сейчас в алгоритме использую ENTER_FRAME. Пробовал Timer, и setInterval() - так на медленных компах еще сильнее тормозит. Что делать? Как привязаться к какому либо таймеру правильно? Может надо использовать какой либо внешний таймер? Например с сервера? Вобщем HELP!!!! |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Привязывайтесь к абсолютному времени.
|
|
|||||
Регистрация: Mar 2011
Сообщений: 14
|
Можно подробнее
Я так понимаю алгоритм будет выглядить следующим образом.
1. В определенные промежутки времени - запрос абсолютного времени 2. Вычисление времени которое прошло с последнего запроса 3. Исходя из вычисленного времени - передвигать объекты. |
|
|||||
Регистрация: Mar 2011
Сообщений: 38
|
Зачем всем вычислять расстояние на которое надо всем перемемтиться?
Каждый вычисляет свою позицию сам и передает остальным где находится сейчас и что делает. Если кто медленней - это его проблемы. Главное он будет знать где находятся остальные сейчас. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
MAPUTO, тут похоже дело не совсем в этом. Одни и те же объекты будут на разных компах находиться в разных местах.
Jobe Makar в своей книжке Actionscript for Multiplayer Games and Virtual Worlds довольно подробно об этом писал |
|
|||||
Регистрация: Mar 2011
Сообщений: 14
|
В этой проблеме действительно помогает привязка к абсолютному времени, только вот где его взять то? Timer и setInterval тормозят вместе с флешкой. Я сделал следующим образом:
Вот так вне зависимости от тормозов Timer, я вычисляю сколько времени прошло с предыдущего вызова функции движения, и уже это значение использую при передвижении. Если знаете как еще прикрепиться к абсолютному времени - говорите. Очень интересно как решали подобные проблемы. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Date#getTime()
|
|
|||||
Регистрация: Jan 2011
Сообщений: 49
|
для решения этой проблемы есть готовые классы сторонних разработчиков
TweenMax - указываете координаты и время за которое объект должен туда добраться время расчитываете сами, формула проста: время=расстояние/скорость |
Часовой пояс GMT +4, время: 19:51. |
|
« Предыдущая тема | Следующая тема » |
|
|