|
|
|
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
В общем, сделал я сервер... Даже на лупбаке на локал хост движение получается весьма дерганым
Сегодня еше подолблю и выложу что получится. -------------------- |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Может, нужно более детализировать пересылаемые координаты?
Т.е. отсылать их чаще - поидее движения станут более плавными.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Сервер отсылает столько, что с головой хватит. А вот клиент не успевает получить ВСЕ пакеты, успевает обработать раз в 10 меньше. Надо думать либo о пуле тредов для клиента, чтобы они по очереди получали пакеты; либo отказе от сериализованных объектов; либo сглаживании движния тараканa - тогда таракан клиента будеt двигаться "сам" дo получния новогo пакета. было бы хорошо если бы все посмотрели тест и высказали свое мнение. -------------------- |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Тем самым увеличится нагрузка на клиент - ведь нужно будет постоянно просчитывать траекторию между точками.. Или тока по прямой? Т.е. между точками двигаться по прямой? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Да, таракан движется по прямой до получения новых данных. Такая штука использовалась в ряде игр, например в ThinkTanks при сильnom лаге видно, каk некоторые танки движутся в одном направлении, а затем бац- оказываются в совершенно другом месте.
-------------------- |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Значится, идея такая:
За проход gameLoop сервер спит 30 ms. После вызова update(elapsedTime) сервер отсылает клиентам HashSet, содержащий набор ValueObject объектов. Для получения такого объекта от Sprite сервер вызывает метод getValueObject, который возвращает объект класса наследующего от ValueObject. У таракана этот класс называется RoachValueObject и содержит координаты и направление. Каждый объект в игре имеет свой ID, этот ID копируется в ValueObject. Если ничего за проход цикла с объектом не произошло, то метод возвратит null, и сервер не поместит его в HashSet. Клиент получает пакет с HashSet'ом, и по ID, хранящемся в ValueObject, находит нужный объект, передавая ValueObject в метод setValueObject(ValueObject) . Если такого объекта нет, он создается. Клиентский объект устанавливает себе координаты и пр. Клиентский gameLoop вызывает только updateAnimation(elapsedTime) и draw(). Если юзер произвел какое-то действие, например кликнул мышкой, создается объект класса, наследующего от Event. В него помещается, помимо параметров, ID клиента, точнее его таракана. Когда сервер получает Event, он находит таракана по этому ID и передает ему событие в метод doEvent(Event). И сервер, и клиент имеют 2 дополнительных треда : сендер и рисивер; которые и занимаются всеми этими делами. -------------------- |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Игра на JAVA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |