• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Массивы

Автор mixey, 30 ноября 2008, 02:40:43

« назад - далее »

redis

Люди добрые помогите мне тупому и бездарному, мне надо через array channel внести в массив колиззионый обьект, и в разных частях проекта получать к нему доступ, выкладываю исходник, если можно ответьте словами, скрином, исправленным црг, чем сможете.

только ответьте чтонибудь, а то я подумаю что вы не видите и создам новую тему :)

redis

Обьясните пожалуйста чем различаются array pointer и array channel ведь и с помощью и того и другова можно внести в массив любой канал, чем они тогда различаются ?  Просто внести в массив через array channel колиззионый обьект мне удалось но получить рабочую ссылку в друом месте программы не удалось :(

Подскажите хотя бы вот чем они различаются хотя бы скрином :)

DimiS

#17
ну вот у Array Channel  в хелпе написано, что с помощью второго чаилда можно тому ченелу который берётся из масива передать чаилды вот этого второго чаилда. Т.е если в твоём примере к тому Array Channel-у который ты подконнектил подрубить Collision Object с тем 3D Object-ом от которого ты коллизию считаеш, то всё пашет :)
С друго стороны оно и даром такое не надо)))

redis

Тоесть для моей цели нужно использовать Array pointer ?
А array channel так для галочки в квест заюзали ?

DimiS

бле, откуда такие выводы??
в квесте есть ченелы которым для правильной работы не нужны подконнекченые чаилды -- типа ченела Value. А есть такие которым обязательно нужно чтоб были чаилды подконнекчены. Вот когда ты сохраняешь такие ченелы в массиве, и потом к ним обращяешся, то тебе нужно ещё как то подключить к ним чаилды. Вот и придумали такой хитрый финт ушами -- ты коннектишь всё необходимое к какому то ченелу такого же типа что и сохранённый в твоём массиве, а этот ченел коннектишь к Array Channel-у, а он уже передаёт чаилды того левого ченела тому ченелу из массива, который ты вызываешь.
А Array pointer у тебя скорее всего и не получится заюзать. Я не знаю как он работает но из массива в твоём примере не получалось выбрать поле с коллизион обжектом

redis

Хм, с помощью array pointer я уже сделал, но мне интересно как с помощью array channel это сделать, можешь показать скрином или црг правильное подключение ?
Пожалуйста :)

DimiS

сделал? мне тоже было бы интересно глянуть на цгр того что получилось
Я цгр выкладывать не буду, мне кажется у тебя версия квеста ниже 4.2.2 и твой квест её просто не откроет. Но зато я прицеплю картинки, там всё в принципе понятно. На первой показано как юзать Array Channel. У тебя уже есть такая конструкция, но ты видимо использовал её в качестве сохранения значения ченела. На второй картинке открыты свойства Array Pointer-а и там видно что нельзя выбрать из какой колонки брать значение, я хз как у тебя получилось его использовать

redis

Вот cgr только там у array pointer в настройках есть галочка, я не знаю для чего она но всё равно поставил, на ней ещё написано Warning, ты случаем не знаешь для чего она ? :)

DimiS

ок, я понял, там надо создавая колонку указать ей специальный тип pointer
Что касается галочки, там написано что если она стоит, то поинтер не проверяет существует ли тот ченел на который он указывает на самом деле. За счёт этого работает быстрее, но если того ченела вдруг нету, то квест крашится  :P
Если не секрет как ты теперь собираешься использовать то что узнал насчёт квестовых массивов?)

redis

Ну вообщем я считаю что на квесте реально сделать полноценною игру и делаю проект по вселенной Warhammer 40 000 естественно бесплатно :) жанр action модели пока прототипные, и я работаю сейчас над игровой механикой, сделал искуственный интелект в том числе поиск укрытий, ну а массивы нужны чтобы потом просто копировать группу блоков отвечающих за AI и массивы заменяют ярлыки, а как известно в квесте ярлыки не копируются :) осталось для AI сделать алгоритм для фаталити или как оно там называется

Campo

#25
начал разбираться с массивами. действительно мощная штука.
сделал пример небольшой:
при нажатии на стандартную GUI кнопку, появляется бокс, позицию которого можно изменять при помощи мыши. каждое нажатие на кнопку добавляет ещё один бокс (метод for loop), если нажать кнопку "Delete" исчезнет последний добавленный бокс.
пока правда не смог намутить, чтобы можно было перемещать каждый добавленный бокс, а не только последний. если кто имеет решение - рад помощи )
всё что не делается, всё к лучшему...

kyard

Тебе это для чего (если не секрет)?

А так по разбирай пример Quest3D 4.3\Examples\Advanced\Dynamic Collision , если выберешь правильное направление то получиться  ;)

Campo

счаз покапаюсь, спс kyard )
потом покажу, для чего.
всё что не делается, всё к лучшему...