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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.05.2012, 16:52
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 1  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
По умолчанию интерполяция координат в клиент-серверной игре

приложение работает по такому принципу:
- сервер шлет координаты игрового объекта
- клиент принимает, десериализирует и кладет в буфер
- если игровой объект достиг координат назначения, то клиент берет из буфера следующие координаты и "дает" их игровому объекту

т.е. состояние клиента немного отстает от состояния сервера (это так и должно быть, интерактивность в игре минимальная). Буфер нужен для того чтобы "сглаживать" возможные задержки сообщений от сервера. Если длина буфера изменяется, я изменяю коэффициент интерполяции чтобы увеличить/уменьшить отставание состояния клиента от состояния сервера (т.е. как бы изменяется скорость игры). Далее картинка иллюстрирующая суть проблемы:
[IMG]http://dl.************/u/2448968/1.JPG[/IMG]
dV = длина(А, Б) / (коэффициент интерполяции * стэйдж.фреймРэйт) -- рассчитывается при каждом входе в кадр

т.е. если коэффициент интерполяции увеличится пока игровой объект бежит из точки А в точку Б, то в конце пути "вставится маленький кусочек" dV3 что приведет к "дерганию" игрового объекта.

У кого есть опыт реализации подобных алгоритмов, поделитесь пожалуйста идеями...

Добавлено через 42 секунды
http://dl.************/u/2448968/1.JPG

Добавлено через 1 минуту
как картинку показать?

Добавлено через 14 минут
пока формализовал вопрос, сам придумал как надо делать

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

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

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


 


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


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