ДеЦЦкий сад "ПандЁнок"
|
|
Rivermacaroon0 | Дата: Понедельник, 14.11.2011, 18:49 | Сообщение # 241 |
Рядовой
Группа: Пользователи
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Не всё так просто - актёр не является геометрией, а ты ищешь геометрию find('**/+GeomNode'). Самый простой и эффективный способ - повесить вокруг актёра какой-нить Collision Solid и детектить его.
Опять я все не пойми как сделал, а самое удивительное что работает... Я еще совсем плохо разбираюсь поэтому для меня будет большой проблемой повесить Solid на актера
|
|
| |
Alexbis | Дата: Понедельник, 14.11.2011, 19:09 | Сообщение # 242 |
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
| Quote (serg-kkz) Хм... что под понятием слепить ты подразумеваешь, что? Я хочу спросить каким образом создают карту для онлайн игр. И когда перемещаешся по игровому миру меняются названия локаций.
|
|
| |
serg-kkz | Дата: Понедельник, 14.11.2011, 19:26 | Сообщение # 243 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (Alexbis) Я хочу спросить каким образом создают карту для онлайн игр. И когда перемещаешся по игровому миру меняются названия локаций. Ну есть цельная с погрузкой объектов. А есть с уровнями. В каждом уровне есть чекпоинты для перехода из локации в локацию. Например как в сталкере. Если игрок достиг поинта(это может быть невидимый меш с коллизией) то запускается функция очистки сцены и загружаются объекты нужной сцены. Насчет имен, если раздельные уровни, то думаю понятно что и название устанавливается при загрузки. А вот если цельный, то зоны можно разбить по координатам. Просто определённому диапазону координат приравнивается имя, а потом проверятся в каком диапазоне координаты игрока и выводится имя локации. Например как в GTA.
ООП -
Сообщение отредактировал serg-kkz - Понедельник, 14.11.2011, 20:10 |
|
| |
serg-kkz | Дата: Понедельник, 14.11.2011, 20:03 | Сообщение # 244 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (Rivermacaroon0) Опять я все не пойми как сделал, а самое удивительное что работает... В данном случае коллизия создается из собственного меша модели. А можно сделать для всех, например бокс, это будет менее затратней детекить. Можно генерировать коллизию из данный боунг бокса. Если в случае актера, то ты создаешь коллизию геометрии из меша в определенном кадре анимации, но она может меняться. И сгенерированая геометрия не будет совпадать.
ООП -
Сообщение отредактировал serg-kkz - Понедельник, 14.11.2011, 20:08 |
|
| |
Alexbis | Дата: Понедельник, 14.11.2011, 20:35 | Сообщение # 245 |
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
| То есть можно смоделировать целую карту в 3dsmax конвертировать в egg и разбить в Панде зоны по координатам. И еще один вопрос какой maximum число полигонов должен быть игрового уровня. Что бы игра не тупила
|
|
| |
serg-kkz | Дата: Понедельник, 14.11.2011, 21:07 | Сообщение # 246 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (Alexbis) То есть можно смоделировать целую карту в 3dsmax конвертировать в egg и разбить в Панде зоны по координатам. И еще один вопрос какой maximum число полигонов должен быть игрового уровня. Что бы игра не тупила Здесь зависит от детализации карты и размера, внятного ответа тут невозможно дать. С большой картой есть множество нюансов, тоже определение коллизии и т.д. В любом случае есть возможность экспортировать сценной. А про полигоны глянь, тут ;). Но не забывай что игровая логика тоже откусывет кусок от производительности, это так же и определение коллизий, звуки, и т.д.
ООП -
|
|
| |
ninth | Дата: Вторник, 15.11.2011, 08:29 | Сообщение # 247 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (Rivermacaroon0) Опять я все не пойми как сделал, а самое удивительное что работает... С кубиком ты сделал в общем-то правильно, т.к. кубик - это не актёр, а геометрия. Актёр от геометрии отличается наличием анимации.
Quote (Rivermacaroon0) Я еще совсем плохо разбираюсь поэтому для меня будет большой проблемой повесить Solid на актера Посмотри как сделана сфера для детекта препятствий и сделай такую-же, только маску повесь соответствующую.
Quote (Alexbis) Я хочу спросить каким образом создают карту для онлайн игр. Можешь сюда глянуть http://panda3d.org.ru/forum/3-131-1
|
|
| |
serg-kkz | Дата: Вторник, 15.11.2011, 16:03 | Сообщение # 248 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Замечу, что не имеет особенного значения, онлайн ли карта. Суть не в том, главное управление контентом, т.е. реализовать менеджер сцены для поддержки определенного количества полигонов при больших пространствах. Так же параллельно нужно создавать менеджеры: звука, теней, света и т.д. GTA SA не создавалась как онлайн игра, однако играют.
ООП -
|
|
| |
Папко | Дата: Пятница, 25.11.2011, 02:14 | Сообщение # 249 |
Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
|
Сообщение отредактировал Папко - Пятница, 25.11.2011, 02:14 |
|
| |
ninth | Дата: Пятница, 25.11.2011, 07:22 | Сообщение # 250 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Что-то я не вижу где у тебя импорт? Да и вообще откуда взялся init.py? __init__ - в данном случае процедура инициализации класса gameLocation Quote С control пока закончили, открываем location, импортируем наш класс from modules.control import cameraHandler В __init__ дописываем camera=cameraHandler()
|
|
| |
Brain | Дата: Суббота, 26.11.2011, 11:13 | Сообщение # 251 |
Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Репутация: 0
Статус: Offline
| Всем снова здравствуйте! Вопрос тоже про уровни/карты. Есть для панды, к примеру, Левел Эдитор, ну или если бы был. Каким образом получалась б карта, если бы размещались разные модели в .egg и проч? Генерировался код?
|
|
| |
ninth | Дата: Суббота, 26.11.2011, 14:08 | Сообщение # 252 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Готового левел-эдитора для панды нет, т.к. принцип построения карты для, скажем, FPS, будет отличаться от построения тайловой карты для стратегии. В качестве основы карты должна браться некоторая структура данных, которая эту карту будет описывать - например список элементов, для каждого из которых заданы: положение, масштаб, поворот, разрушаемость, визуальная модель, модель коллизий, интерактивность и т.п. Никакого кода, кроме того, который разберёт эту структуру и построит на её основе карту. Кроме того, из файла модели возможно делать ссылки на внешние файлы.
|
|
| |
Kornival | Дата: Вторник, 20.03.2012, 19:44 | Сообщение # 253 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| Итак, юзается PGButton, при наведении курсора на кнопку она немного "изменяется", то есть бывает заметно, что именно эта кнопка сейчас активна. При нажатии на кнопку и повторном наведении курсора этого уже не происходит. Как это исправить?
|
|
| |
serg-kkz | Дата: Вторник, 20.03.2012, 20:01 | Сообщение # 254 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Ну, э... зачем-же исправлять естественное. Кнопка получила фокус, и всё. Если только найти метод который будет убирать фокус. Баг-ли это можно проверить добавив вторую кнопку, и понажимать по очереди.
ООП -
|
|
| |
Kornival | Дата: Вторник, 20.03.2012, 22:27 | Сообщение # 255 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| Quote (serg-kkz) Ну, э... зачем-же исправлять естественное. Кнопка получила фокус, и всё. Если только найти метод который будет убирать фокус. Баг-ли это можно проверить добавив вторую кнопку, и понажимать по очереди. Нет, ну я же не говорю про баг) Мне просто нужно состояние этой кнопки "перезагрузить". У меня три кнопки есть на самом деле, если нажать на все три, то ни одна из них больше не "активируется" при наведении курсором. Попробывал в обработчике вызывать focus_out для нажатой кнопки, не помогло.
|
|
| |