|
|
|
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Вот, читаю потихоньку исходники..
В файле Animation.java натолкнулся на такой код:
Не понимаю, зачем здесь возвращается булевское значение? Тут всегда возвращается false. Кроме того, я посмотрел по другим файлам - он, вроде, везде вызывается как someObject.update() - т.е. нигде не проверяется возвращаемое значение. Резюме - зачем здесь boolean и почему не void? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Animation я брал из Invasion, а тудa этот класс попал ещe откуда-то Очевидно, return здесь совсем не нужен. Вот допишу сервер, может дойдут руки подчистить
-------------------- |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Еще заметил такую фигню:
я запускаю класс Test из консоли. Так вот, если моя текущая директория - директория, содержащая исходники - все ОК. Иначе - он не находит map.txt, даже если он лежит в директории, откуда я запускаю. Добавлено @ 23:53 Хотя это явно чисто тестовый баг, потом надо бы продумать строчку [code=]parser.parse("map.txt");[/code] сделать, чтоб искал в classpath и в текущей директории.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Продолжаем..
Мне долго не давала покоя проблемка излишнего расхода ресурсов. Таракан у меня на экране нет-нет да и моргал. Предлагаю такое решение: перед каждой перерисовкой делать небольшую задержку. Вот, смотрите, я поменял чуток класс AbstractGame.java:
Кто заметит задержку в 50 миллисекунд между прорисовкой? Однако, после добавления этого кода, все стало просто шикарно: 1) таракан ВООБЩЕ не моргает и при этом нормально передвигается; 2) приложение потребляет всего 10% процессорного времени - можно игратьcz и заниматься своими делами. .. Ессно, можно развить эту мысль - например, вычислять необходимую задержку исходя их мощности и загруженности операционной системы, но это детали.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
У меня при sleep(50) таракан стал "дергаться", а процессор оказался занят игрой на 60% ...
Маленькая задержка, скажем, в 5 мс вообще никак не влияет К сожалению, при работе с сервером дергается всe куда хуже Kurt, если есть желание, могу добавить тебя в девелоперы. Толькo нужен твой логин на сорсфорж -------------------- |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Ну, я ж говорю - нужно считать fps и исходя их этого вычислять fps. Надо подумать.. Кстати, у тебя вообще-то моргание наблюдалось? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Нет. Оно появляется только со sleep, а без негo всe идет очень гладко. -------------------- |
|||
|
||||
Kurt |
|
|||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Поверь мне наслово - у меня все наоборот.
Ладно, разберемся.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Тем не менее, идея помоглa я добавил Thread.sleep(100) в update сервера, и стало гораздо лучшe - таракан хотя и "скачет", но намногo плавнее.
-------------------- |
|||
|
||||
DarkDS |
|
|||
Опытный Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: нет Всего: 16 |
Может попробовать сервер и таракана на разных машинах запустить?
|
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Надо бы, но сначала стоит код причесать и заставить его нормально работать с локальным хостом.
Сегодня еще посмотрю, а затем можно пробовать -------------------- |
|||
|
||||
Kurt |
|
||||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Я думаю, на клиентах все же надо будет сделать такую задержку, вот только ее надо вычислать исходя их мощности системы - скорее всего у тебя получились косяки именно из-за разности между ресурсами наших машин - им всем нужны РАЗНЫЕ задержки. Иначе, у тебя все ОК, у меня даже просто мирно отдыхающий таракан постоянно моргает - непорядок.. Предлагаю ввести некоторое фиксированное кол-во fps (желательно, как можно меньше - чтоб меньше ресурсов есть..) и используя таймер и sleep - корректировать это значение, чтоб на всех машинах было одинаково. Т.е. по событию таймера проверяем сколько было fps за прошедшую секунду и с помощью пропорций корректируем значение sleep.
К сожалению, с сервером тоже придется сделать похожее - число 100 будет нормально работать на ТВОЕМ компе, не не факт что на более сильной/слабой машине будет все то же. .. З.Ы. Чтоб поднять настроение и оптимистический настрой: попробовал запустить в ASPLinux9.0+JVM1.4 - не грузит карту, из какой бы директории я не запускал это горе-приложение.. Надо поработать.. З.Ы.Ы. До этого запускал в OS WinXP SP1. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
Domestic Cat |
|
||||||||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Ох, то ли с путями не то, то ли с рисункамi
И от коннекшнa тожe. Нo я думаю, 30-50 тоже хватит, а это подойдет в люб ом случае. jа доделал сервер, тепер' оn нe отсылаеt координаты объекта, если они nе измеnенились зa циkл. Попишу ещe доки и выложу попозже.
А это на лаптопе было?
Оk, допишу расчет фпс, а там подберем параметры . -------------------- |
||||||||
|
|||||||||
DarkDS |
|
|||
Опытный Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: нет Всего: 16 |
Уже выяснили - с рисунками... Нужно их а соурсейв как бинарики положить У меня такая же ситуация |
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
100 мс оказалось слишом много. Сделал 30 - даже не чувствуется, что есть нетворкинг
Дописываю доки и выкладываю. -------------------- |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Игра на JAVA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |