ДеЦЦкий сад "ПандЁнок"
|
|
serg-kkz | Дата: Суббота, 15.10.2011, 00:07 | Сообщение # 211 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (ninth) Может выйти так, что ты не знаешь на каком уровне от корня находится требуемый объект, да и делать столь жёсткую привязку не слишком хорошо. Жесткую привязку? ООП же!!! все должно быть как правильно. Родитель должен быть первым, а потом составные его.
ООП -
|
|
| |
serg-kkz | Дата: Суббота, 15.10.2011, 00:15 | Сообщение # 212 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| А остальное искать поиском по ноду, можно прям в рендере искать.
ООП -
|
|
| |
ninth | Дата: Суббота, 15.10.2011, 00:26 | Сообщение # 213 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (serg-kkz) Жесткую привязку? ООП же!!! все должно быть как правильно. Ты тёплое с мягким не путай ООП здесь вообще никаким боком не стоит - это данные одного типа - граф сцены, имеющий фактически неограниченную вложенность. И заранее знать на каком уровне находится интересующий наз узел, а так же дочерний узел, вернувший результат коллизии не всегда возможно. Затраты ресурсов на поиск будут несоизмеримо больше чем на работу с тэгом. Впрочем я уже сказал, что в данном конкретном случае можно попробовать обойтись и именем узла.
|
|
| |
serg-kkz | Дата: Суббота, 15.10.2011, 00:38 | Сообщение # 214 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (ninth) Ты тёплое с мягким не путай ООП здесь вообще никаким боком не стоит - это данные одного типа - граф сцены, имеющий фактически неограниченную вложенность. Граф сцены, не класс Quote (ninth) И заранее знать на каком уровне находится интересующий наз узел, а так же дочерний узел, вернувший результат коллизии не всегда возможно. Это каким нужно быть раздолбаем чтоб потерять что-то в ООП. Если садишь юнита в технику то.
рендер->техника->юнит
просто если кликнул по транспорту то юнит будет уже третьим, просто решается. Ноды именовать нужно с динамичным индексом по которому можно определить разложив на составные, юнит-тип
ООП -
Сообщение отредактировал serg-kkz - Суббота, 15.10.2011, 00:39 |
|
| |
ninth | Дата: Суббота, 15.10.2011, 01:48 | Сообщение # 215 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (serg-kkz) Граф сцены, не класс Нет. Граф - это граф. В данном случае - ациклический граф в качестве вершин/узлов которого выступают экземпляры одного и того же класса. Ни о какой иерархии, касающейся ООП здесь и речи быть не может. Повторяю, не путай тёплое с мягким - разберись сначала что такое класс и что такое экземпляр класса. А заодно если не знаешь что такое граф - погугли, загляни в википедию или учебник по вышке.
Quote (serg-kkz) Это каким нужно быть раздолбаем чтоб потерять что-то в ООП. см. строчкой выше
Quote (serg-kkz) рендер->техника->юнит рендер->техника->реактивный миномёт->точка посадки водителя->водитель рендер->техника->реактивный миномёт->точка посадки поворотной платформы->поворотная платформа->точка посадки наводчика->наводчик
|
|
| |
ninth | Дата: Суббота, 15.10.2011, 02:17 | Сообщение # 216 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| К слову о жёстких привязках и тёплом с мягким - в теме, где обсуждалось ООП ты как раз опять делал жёсткую привязку класса к одному конкретному именованному экземпляру другого класса.
|
|
| |
serg-kkz | Дата: Суббота, 15.10.2011, 13:19 | Сообщение # 217 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Принципы ООП заложены при работе с пандой в виде нодов как классов. Это и сделано специально, дабы создать объектную иерархию. И что-то потерять в ней это равносильно потерять созданный экземпляр класса.
Для начала создатели ООП дали бы вменяемое название такое: Шаблонное Программирование, ну и приписали, как-нибудь бы доблестное наследование и всякую белиберду типа: яблоки, груши.
Мне не нужно разбираться, что такое класс и экземпляр класса если:
Класс = шаблон Объект = шаблон (результат работы шаблона)
Все-таки странно, что реализованный на C++ граф не является объектом - классом.
Нужно запастись переменными нужных срезов. В соответствии выбранного действия. Если кликнул по определенному транспорту для определенного действия, действие задается через выбор графического интерфейса. Скажем, кнопка посадить юнита в транспорт присваивает либо индекс, либо используем готовый срез. Так же если кликнули по технике не трудно догадаться, как определить тип... [2] и остальное уже от типа.
ООП -
|
|
| |
serg-kkz | Дата: Суббота, 15.10.2011, 20:14 | Сообщение # 218 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| У меня идея к доработке моба. Если точки генерировать по результатам коллизии т.е с использованием луча для полученных координат. Можно получить что находится под лучем. Например булыжник, дом, или вода то точка игнорируется и создается другая. Так можно поднять интелект ai.
ООП -
|
|
| |
ninth | Дата: Среда, 19.10.2011, 00:25 | Сообщение # 219 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Тогда надо проверять ещё и видимость между последней и предпоследней точкой, иначе упрётся в преграду и всё.
|
|
| |
serg-kkz | Дата: Среда, 19.10.2011, 12:35 | Сообщение # 220 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (ninth) Тогда надо проверять ещё и видимость между последней и предпоследней точкой, иначе упрётся в преграду и всё. Не понял.
Лучом проверять поверхность сверху. Вот если под сгенерированными координатами оказалась вода, дом, и пр. То выбрать соответствующее действие. Скажем, угодили в мешь который является водой, можно проигнорировать, т.к. в воду отправлять гнома не зачем. Но можно дать, как задание рыбачить или бежать домой за ластами
ООП -
|
|
| |
ninth | Дата: Среда, 19.10.2011, 19:44 | Сообщение # 221 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (serg-kkz) т.к. в воду отправлять гнома не зачем А если вода или камень окажется между двумя точками пути? Я вот о чём говорю.
|
|
| |
serg-kkz | Дата: Среда, 19.10.2011, 20:37 | Сообщение # 222 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Ну, это уже другая проблема. Поиск пути. Можно так: Можно в модели указать точки обхода, на которые будет перекидываться путь, если основной пересекся с препятствием. Насчет водоемом желательно их именовать для индикации если река, то у нее должна быть обозначена глубина и ширена. По которым можно определить пустить гнома вплавь или дать координаты ближнего моста, т.е. точки для перехода реки. Также если озеро то координаты лодки.
ООП -
|
|
| |
ninth | Дата: Четверг, 20.10.2011, 08:51 | Сообщение # 223 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Что-то вроде того. Одно следует за другим )
|
|
| |
soos | Дата: Вторник, 08.11.2011, 17:04 | Сообщение # 224 |
Майор
Группа: Пользователи
Сообщений: 82
Награды: 1
Репутация: 0
Статус: Offline
| Как заставить Node не наследовать Scale от reparent'а? Есть перемещающийся и поворачивающийся персонаж, к нему привязан пустой Node, к пустому ноду привязана камера. Необходимо, чтобы пустой нод наследовал от персонажа только позицию, а камера наследовала от пустого нода только поворот.
|
|
| |
serg-kkz | Дата: Вторник, 08.11.2011, 19:51 | Сообщение # 225 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Голову с наследованием не ломай. Тут легко сделать без ООП(апчех). Просто ноду каждый кадр устанавливай позицию, а камере поворот.
Code Node.setPos(pers.getPos()) cam.setPhr(Node.getPhr()) Можешь только одну ось.
Code cam.setR(Node.getR())
И нет проблем.
ООП -
|
|
| |