Координаты объектов
|
|
liquide | Дата: Суббота, 05.05.2012, 21:05 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Я хочу создать скопление звезд, и чтобы при нажатии на каждую звезду появлялась своя информация в новом окне (тут использую просто Тк интером). В общем проблема встала в том, что я не знаю как получить координату объекта. Я их создаю отдельным классом, и даже написал специальный класс присваивания координат. И все вроде хорошо, но я не знаю как можно получить координаты эти обратно =( объекты ставятся не рандомно, а четко по списку координат. Я нашел команду которая передает координаты объекта, но она дает только координаты на экране самом, а мне нужны координаты сцены и вот как их можно получить пандовскими методами? Может уже есть такой вопрос на форуме, но я правда не нашел, может направите =) И еще вопрос про сами модели, я прочитал, что создатели панды рекмендуют использовать майю, я ее уже установил пол года назад и изучал. вроде даже привык, но тут встала проблема, что в объекты надо прописывать строчку <Collide> { Polyset keep descend } чтобы работала коллизия, и вот как эту строчку можно прописать в майе? просто если открывать блокнотом майи файл или уже експортированный в егг, то там жуть какая то непонятная с непонятной кодировкой. Может есть идеи? Ну или хотя бы через что тогда лучше экспортировать? А лучше, если кому не жалко, дайте обычную сферку с такой строчкой которая будет работать =)
|
|
| |
serg-kkz | Дата: Суббота, 05.05.2012, 22:08 | Сообщение # 2 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Не понял что у тебя за проблема с координатами. Но можешь использовать метод .getPos() к ноду или к объекту. Какая разница классом или как ты их загружаешь, всеравно они находятся в рендере. Ты также можешь при установке координат назначать теги, название, расположение и прочую информацию, а потом брать имя и искать в рендере по нему, а там можно вести что угодно и текучие координаты ну и само собой получить значения тегов.
А зачем тебе прописывать эту строчку я не пойму. Но файл прикрепил.
ООП -
|
|
| |
liquide | Дата: Суббота, 05.05.2012, 22:51 | Сообщение # 3 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Да я просто пользуюсь камерой из "детского сада" и для нее сфера нужна с коллизией. Вот. Да, а вопрос тогда, вот я создал все объекты, ноды. Как мне вывести координаты объекта на который я нажимаю? хотя бы такой, образный код, вот у меня есть три объекта допустим, и при нажатии мышки на какой то объект выводится именно его координаты. Нажимаю на второй выводятся координаты второго, нажимаю на третий, выводятся координаты третьего. Что то я не догоняю как это сделать
|
|
| |
ninth | Дата: Воскресенье, 06.05.2012, 12:33 | Сообщение # 4 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Я так подозреваю, что требуется не просто узнать координаты нода, а вытащить свою инфу, предварительно записанную и хранящуюся в объекте, хотя я не совсем понял в чём загвоздка - получить нод по которому произошёл щелчок, или по по полученному ноду найти твой экземпляр объекта, к которому принадлежит нод? Если первое - то тут есть несколько примеров + стандартный пандовский с шахматами. Если второе, то надо во время создания либо присваивать ноду уникальное имя, либо тег с идентификационным номером. Когда ты по щелчку получишь нод - узнать его имя или id и найти в твоём списке объектов объект к которому привязан нод с таким именем/Id. Как вариант, дублировать id в поле объекта.
|
|
| |
serg-kkz | Дата: Воскресенье, 06.05.2012, 12:38 | Сообщение # 5 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Попробуй мое решение.
ООП -
Сообщение отредактировал serg-kkz - Воскресенье, 06.05.2012, 14:58 |
|
| |
liquide | Дата: Воскресенье, 06.05.2012, 14:26 | Сообщение # 6 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Я так подозреваю, что требуется не просто узнать координаты нода, а вытащить свою инфу, предварительно записанную и хранящуюся в объекте, хотя я не совсем понял в чём загвоздка - получить нод по которому произошёл щелчок, или по по полученному ноду найти твой экземпляр объекта, к которому принадлежит нод? Если первое - то тут есть несколько примеров + стандартный пандовский с шахматами. Если второе, то надо во время создания либо присваивать ноду уникальное имя, либо тег с идентификационным номером. Когда ты по щелчку получишь нод - узнать его имя или id и найти в твоём списке объектов объект к которому привязан нод с таким именем/Id. Как вариант, дублировать id в поле объекта.
получить нод по которому произошёл щелчок, а лучше его координаты хотя бы я просмотрел шахматы, понял, что можно вывести координаты когда опускаешь фигуру командой print self.pieces[to].obj.getPos() правда не представляю как реализовать это у себя =( конечно, можно и вторым способом, он наверное даже лучше. Ну тут лучше как понятнее будет =)
Quote (serg-kkz) Попробуй мое решение. Битый архив, не может открыть =((
|
|
| |
serg-kkz | Дата: Воскресенье, 06.05.2012, 15:00 | Сообщение # 7 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Quote (liquide) Битый архив, не может открыть =(( Перезалил.
ООП -
|
|
| |
liquide | Дата: Воскресенье, 06.05.2012, 15:16 | Сообщение # 8 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Quote (serg-kkz) Перезалил. Ух, шикарно, огромное спасибо. Буду дальше разбираться))
|
|
| |
liquide | Дата: Воскресенье, 06.05.2012, 20:09 | Сообщение # 9 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Теперь еще один вопрос появился, я использую солнце из demomaster.0.8 все вроде хорошо, но вот вопрос с фильтром. Он у каждой звезды направляет свет как то куда захочет, как я понимаю это из за камеры. Может можно создать какой нибудь обработчик событий который будет правильно выставлять свет и корректировать при изменении камеры? и чтобы все звезды выглядели как желтая звезда на скрине? (я этого добился просто камеру поставив под правильным углом)
|
|
| |
ninth | Дата: Воскресенье, 06.05.2012, 20:19 | Сообщение # 10 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Я вот думаю, что нет смысла этот эффект использовать - слишком он прожорливый. Проще вешать пререндеренный спрайт сияния. Выглядеть будет немного хуже, но ресурсов это жрать будет на несколько порядков меньше.
|
|
| |
liquide | Дата: Воскресенье, 06.05.2012, 20:25 | Сообщение # 11 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Я вот думаю, что нет смысла этот эффект использовать - слишком он прожорливый. Проще вешать пререндеренный спрайт сияния. Выглядеть будет немного хуже, но ресурсов это жрать будет на несколько порядков меньше. Ну а если уж очень хочется, то есть возможность исправить эти лучи? Хм, пререндеренный спрайт? в смысле картинку поставить чтоли?
Сообщение отредактировал liquide - Воскресенье, 06.05.2012, 20:26 |
|
| |
ninth | Дата: Воскресенье, 06.05.2012, 20:29 | Сообщение # 12 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Да, картинку. Так работают большинство "вспышечных" и световых эффектов даже в последних играх. Этот эффект из демомастера сделан шейдерами, так что одной камерой не обойдёшься - надо разбирать код самого шейдера или писать свой.
|
|
| |
liquide | Дата: Воскресенье, 06.05.2012, 20:33 | Сообщение # 13 |
Сержант
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Статус: Offline
| Quote (ninth) Да, картинку. Так работают большинство "вспышечных" и световых эффектов даже в последних играх. Этот эффект из демомастера сделан шейдерами, так что одной камерой не обойдёшься - надо разбирать код самого шейдера или писать свой.
Хм, а можно узнать где лучше всего изучить спрайты? И на чем их делать и с помощью чего? А то я с этой частью совсем не знаком)))
|
|
| |
serg-kkz | Дата: Воскресенье, 06.05.2012, 20:34 | Сообщение # 14 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Не стоит забывать что спрайты могут быть анимированные. Можно запечь прямо в движке, где-то в мануале видел, точно не помню.
ООП -
|
|
| |
ninth | Дата: Воскресенье, 06.05.2012, 23:18 | Сообщение # 15 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Спрайт - это просто полупрозрачная картинка, наложенная на плоский полигон, который всегда повёрнут в сторону камеры. На основе спрайтов помимо вышеупомянутых вспышек и т.п. так же работают эффекты огня, дыма, пыли, всякие "магические" искры, имитация прерывистого луча от ЛЦУ, в общем много чего.
В стандартных примерах есть использование спрайтов, в т.ч. и анимированных о чём говорил serg-kkz. Насчёт программного рендеринга - готовой функции я не припомню, но в принципе можно, хотя обычно эффекты либо рисуются/редактируются в графическом редакторе, либо делается рендеринг в трёхмерном, ну либо ищутся готовые - с последним обычно проблем не возникает, даже с учётом авторских прав и т.п.
|
|
| |