![]() |
|
Модераторы: LSD, AntonSaburov Страницы: (19) Все « Первая ... 8 9 [10] 11 12 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| Sun |
|
|||
|
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
А проходимость в одном тайле будет однородной? Если да, то ИМХО будет выглядеть неестественно, хотя для начального варианта наверно сойдет.
Таракан заранее не должен знать проходимость, но при прохождении препятствий он должен накапливать опыт и пытаться строить более оптимизированный маршрут. Можно ввести возможность направлять таракана скрепкой или спичкой, если он заблудился. Надо определиться как таракан будет ориентироваться в пространстве - используя усы, зрение, нюх и слух (кто-то знаком с тараканьей физиологией?) Будет ли таракан отдыхать поглотив приманку? Будет ли на него нападать лень после поглощения слишком большого объема пищи? -------------------- Account removed |
|||
|
||||
| Sun |
|
||||
|
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
А почему квадратами а не гексагонами? Гексагоны, ИМХО, дают больше степеней свободы для перемещения тараканов, а обработка не настолько сильно усложняется чтобы от них отказаться. В конце концов - где вы видели таракана который перемещается по квадратам? -------------------- Account removed |
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Если квадраты сделать мелкими, то с проходимостью и перемещениями все будет ок.
Все равно можно заставить таракана перемещаться в 8 направлениях (нуж)но 8 анимаций). В А* алгоритме используется приорити кью, приоритет пути определяется путем оценки каждого кусочка пути. Можно сделать таракана более / менее умным задавая соответствующую функцию сравнения. С чувствами потом можем доделать -------------------- |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
----------------
По деталям: Поле- будет вид сверху (то есть, квази-3Д) ? Фактически есть 3 вещи, которые можно писать (в основном) независимо: 1. Клиент. а. ГУИ - для начала б. "движок" - тайл мап, тараканы, их передвижения 2. Сервер. 3. Графика. Нужны будут анимации тараканов - движение в 8 сторон - наборы из 4-5 png дя каждогo направления Тайлы, для начала несколько типов - земля, трава, каменистая почва. Для началa прицепляю файлы Animation, Game и Sprite. Animation: передаем *(имаг + длительность показа) Sprite содержит Animation, скорости х и y, положение. Нужно будет добавить направлениe и менять анимацию в зависимости от него. // вопрос : можно сделать 1 анимацию и крутить через AffineTransform. Будеt неэфективнo. // Можно сделать 8 анимаций, будеt эфективнее но сьест большe памяти. Game содержt основной цикl анимации. вызываеt update нa саkлассе (который долежен соответственно получть данныe с сервера, апдайтить игровое полe, считывать что надo с клавиатуры, апдейтить все игр. объекты. Каждый объекt наследует от Sprite и сам апдайтit свою анимацию.) Далее вызывается репаинт панели. Это сообщение отредактировал(а) Domestic Cat - 30.9.2004, 17:16 Присоединённый файл ( Кол-во скачиваний: 16 )
Archive.zip-------------------- |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 5 Всего: 9 |
Хочу обратить ваше внимание на
http://www.bytonic.de/html/jake2.html возможно подчерпнете что то полезное для себя... -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| Sun |
|
|||
|
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
Предлагаю организавать тайл мап в виде XML-файла, чтобы работать с ним стандартными средствами и было легче вносить изменения в структуру. Что-то на манер GML - the Geography Markup Language, только попроще.
-------------------- Account removed |
|||
|
||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
По-моему, это только замедлит парсинг файла. xml хорош для коммуникации различных приложений, а у нас одно. Файл с картой будет однородным, типа:
это проще чем
-------------------- |
||||
|
|||||
| Caramel |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4190 Регистрация: 7.8.2004 Где: Дюссельдорф Репутация: 3 Всего: 142 |
А кто-нибудь может мне на пальцах объяснить, что требуется нарисовать
Если правильно поняла: 1) вид остается сверху. 2) карта будет составляться из восьмиугольных ячеек. 3) думаю будет лучше, если тараканы будут бегать по столу. Как варианты названий уровней предлагаю такие: "Обед в Маке", "Рестаран" и т.п. 4) Рисунки должны быть в Gif или Jpg ? Еще у меня просьба: кто-нибудь может достать живого таракана? Никак не получатся правильно анимировать движение. |
|||
|
||||
| Domestic Cat |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Вроде бы да, но пока LSD по этому поводу ничего не написал
я бы предложил квадратные, для простоты, но опяь-таки, покa что это только мое мнение
Получается нечo вроде "Пластилиновых солдаt" (точное названиe язабыл уже )
jpg нe могут быть транспарантнымi (с прозрач)нум фоном) . Поэтому предлагаю png или gif
Тут нету - холодно слишком -------------------- |
||||||||||
|
|||||||||||
| Caramel |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4190 Регистрация: 7.8.2004 Где: Дюссельдорф Репутация: 3 Всего: 142 |
Вот попробовала:
![]() Есть идеи |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
По-моему, слиском сложый фон, и тараканы большие, надо бы поменьше.
Фон лучше сделать пока простым, с учтом того, что его нужно составлять из кусков. чем меньше таких кусков для фона нужно, нем лучше. -------------------- |
|||
|
||||
| Caramel |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4190 Регистрация: 7.8.2004 Где: Дюссельдорф Репутация: 3 Всего: 142 |
Рисунок можно уменьшить в два раза - качество от этого не потеряется.
Фон стола будет залит одним цветом. Единственное что будет прорисовываться это всякая утварь. Можно конечно и ее ужать, но чем реалестичней, тем лучше будет впечатление... мне так кажется Может вместо блюдец и чашек сделать плашки, а потом я их прорисую? Тогда у нас будет хотя бы работающий макет Это сообщение отредактировал(а) Caramel - 1.10.2004, 20:58 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я изначально был за вид сверху. По поводу организации карты, я думаю хорошим примером является "WarCraft II". Там принцип такой есть некое количество типов территорий: трава, земля, вода, лес и т.д. Для каждого типа есть 3-4 различных текстуры, которые подобранны так что любые текстуры одного типа, бесшовно состыковываются с любыми другими. И есть текстуры переходов, которые позволяют организовать плавные переходы: трава-земля, земля-вода, опять же переход трава-земля со стороны земли состыковывается с любой текстурой земли и аналогично для земли. Художникам придется попотеть. Для каждого типа территорий есть некое количество объектов, которое можно поместить поверх ландшафта. Объект может занимать больше одного квадрата. Объект может влиять на проходимость (здание) или не влиять (мусор). Вот так это выглядит: Присоединённый файл ( Кол-во скачиваний: 4 )
WarCraft2.gif-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Лучше 2 остальные зеркалирование. Domestic Cat В общем дизайн кода мне понравился, но хотелось бы минимальный JavaDoc по классам. Я например не понял зачем у Game.update(long elapsedTime) нужно время. Что за поля private boolean finite = false; private boolean switcher = false у Animation. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Domestic Cat |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Насчеt варкрафта я согласен, но тараканам можно даже попроше пока сделать, несколько типов террайна, так что нужно будеt
(N+1) * 8 тайлов, если N - количество типов террайн.
Виноват, признаюсь
Предположим, я хоч написать леталку - стрелялку. я рисую звездолет, и заставляу его отзываться на кнопки. Теперь нужно стрелять, правильно? 1. Подход номер 1: при нажатии пробела, запускаем тред, он рисует пульку на экране и спит Н миллисекунд в зависимости от скорости пули. Можно потратить некоторое время (ч)его я в свое время проделаl) и обнаружть, что при выстреливании пулек 20-30 треды начинают жутко тормозить, ибо количество тредов таки не бесконечно да и жрут они многo. 2. Тогда оставляем один тред. Проблема - а как учесть тогда скорость пули? Тогда и нужен апдейт: делаем бесконечый цикл. За каждый проход кждя пуля меняет свое положение на определенную величину. Йето тоже нехорошо, потому что вызов апдейта чаще всего будет не через равные промежутки времени. В результате выглядеть это будет очень плохо - пуля то летит, то стоит/. И на разных машинх будет по-разному работать - на одной бустро, на другой медленнее. Поэтому: Каждый раз передаем пулe время, истекшее с прошогo вызова апдейт (dt). Пуля тогда простo рассчтаеt свои координаты : x = x0 + Vx * dt y = y0 + Vy * dt и затем рендерер простo переберет все зарегистрированные объекты, запросит у них их координаты и рисунки и нарисует их в Graphics g. Тo есть, апдайt будеt вызывать апдейт нa каждом игровом объекте, а тot будет апдейтить саm себя, возможо, в зависимостi от истекшгo времени и своегo предыдущегo состояния Передача времени в апдейт делает движение объекта не зависящим от посторонних причин - нагрузки процессора, скорости машины.
finite = true соответствует финитной анимации, (корабль взрывается). Пo умолчнию анимация инфинитная (таракан идет). Пусть я скажем, взорвал корабль врагa и установил ему новую finite анимацию. Объекt "враг" переводим в состояиe DIYING,i нe убираеm с игровогo поля покa нe закончтся анимация взрывa и оn не перейдет в состояие DEAD. kогда я писал animation я с делаl немного криво - установил полe swicher,eслi оно сталo true, getImage будet возвращать пустой прозрачый рисунок, оb3екt же переходит в DEAD state чрез некоторое время. Пo идеe, лучше былo бы спрашiвать у Animation : if (anim.isFinite() && anim.isFinishedAnimation() ) { state = DEAD; } Это сообщение отредактировал(а) Domestic Cat - 2.10.2004, 21:04 -------------------- |
||||||
|
|||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |