|
|
|
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 - даже не чувствуется, что есть нетворкинг
Дописываю доки и выкладываю. -------------------- |
|||
|
||||
DarkDS |
|
|||
Опытный Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: нет Всего: 16 |
зы. нужно поменять ключ у имеджей на -kb и перезалить
|
|||
|
||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
ок, сделаю следующий раз
-------------------- |
|||
|
||||
Kurt |
|
||||
Увлеченный Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Да я уже догадался - собственно, зашел на форум отписать, что лажанулся с загрузкой. Сорри - надеюсь, мне, как новичку, простительно.
Однако, теперь другая фигня. Запускаю клиент, сервер. Появляется таракан, но при клике в любом месте таракан остается на месте, а в консоли появляется следующее:
..
Моргание наблюдается на лаптопе и на "обычном" компе.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
Domestic Cat |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Хмм... Когда я сливал, все работало. Ну да ладно, я сейчас все равно пределываю и думаю через полчаса выложить новую версию -------------------- |
|||
|
||||
Sun |
|
||||
Account removed Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: нет Всего: 48 |
У меня есть замечание по классу SimpleFood.
1. Там нет смысла использовать массив анимаций. Достаточно одной. 2. В методе draw не нужно делать разворотов. Так-же еда не должна перемещатся и соответственно иметь направление.
3. Нужно добавить конструктор с передачей имени файла который содержит анимацию и колличество кадров
4. В методе eat() вызывать update. Или может добавить в класс Animation безусловный переход к следующему кадру. Число кадров в анимации должно соотвествовать числу фаз поеданий данного фуда. 5. Не имеет смысл делать статусов для еды. Когда последняя часть еды съедена - нужно удалять еду из списка объектов игры. -------------------- Account removed |
||||
|
|||||
Domestic Cat |
|
||||||||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Согласен.
тоже согласен, но что если еда будет несимметричной ? Все время будет одинаково рисоваться.
Хорошая идея.
Ты имеешь в виду DEAD - ALIVE? Статуs удобен тем, что можно в 1 цикле будет перебрать все игровые объекты и тe что DEAD, удалить. А бez статуса nужно будет это в разных местах делать. -------------------- |
||||||||
|
|||||||||
Sun |
|
|||
Account removed Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: нет Всего: 48 |
Да, я это и имел в виду. На счет перебора объектов, пожалуй ты прав. Тогда у еды должно быть два статуса ALIVE и DEAD, и несколько фаз поедания. -------------------- Account removed |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Игра на JAVA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |