![]() |
|
||||||||||
|
|||||
|
Цитата:
Ну у меня сейчас примерно так: - каждую секунду я отсылаю ping - примерно каждую секунду я получаю pong - теперь я знаю лаг и могу делать поправку (по разнице отосланных ping и принятых pong я знаю, какой именно pong вернулся) - клиент присылает "идти туда" - я подписываю это сообщение на сервере: timestamp = (new Date().getTime() - sender.pongTime) - я отсылаю каждому клиенту подписанное сообщение - клиент получает подписанное сообщение - клиент двигает фигурку sender по экрану туда, где он должен быть в данный момент (знаем дату начала движения и скорость). Двигает быстро, независимо от скорости самого sender, таким образом восстанавливая правильную картину мира - далее клиент просто двигает фигурку sender с заданной скоростью в заданном направлении ЗЫ @Котяра - 1 байт прекрасно отсылается из под любой винды ЗЗЫ Касательно графов - клиент полностью рассчитывает путь. После чего отсылает 2 клеточки - ту, в которую он сейчас идет и ту, в которую он пойдет дальше. Сервер валидирует 2 клеточки и отправляет "можно/нельзя". Таким образом клиент заранее знает, как быть дальше и может начинать показ анимации до подтверждения. После первой отсылки и до конца движения отсылается только одна клеточка - та, в которую мы пойдем после текущей точки назначения. И валидация тоже для одной клеточки (грубо говоря nextTarget = {x=10; y=15}).
__________________
...вселенская грусть |
![]() |
Часовой пояс GMT +4, время: 17:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|