[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
ДеЦЦкий сад "ПандЁнок"
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 для нажатой кнопки, не помогло.
 
Поиск: