|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+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. |
|
« Предыдущая тема | Следующая тема » |
|
|