alternativa3dworld_cube_08

Автор German Usachev
alternativa3dworld_cube_08

данном видео мы с вами раз ещё один вопрос который тем или иным образом связанных с созданием наша кубического мира есть такое вопрос как открытии двери то как-то нехорошо, что мы с вами даже приобрести камеры через двери нам приходится как бы про лето в общем вопрос.

Следующий — это открытие дверей. Задача будет стоять такая, что когда мы с вами при камера примерно 150 пикселей до нашей двери и кликаем мышкой по изображению нашей двери она должна открываться той смещаться фактически в сторону и мы сейчас с вами займемся. Брейн с вами немного то я предлагаю динамическим образом навесить слушатели событий нас интересует участок кода создания объекта где мы с вами адресовано шубы в соответствии с нашей карты если помните мы с вами использовали конструкцию свечки и переменной A ladder attributes принимала значения два тона наш кубик натягивал с текстур к двери и именно в этой части куда мы с вами будем работать перед тем как поставить опера.

Нам необходимо обратиться к текущему кубику для этого мы с вами воспользуемся служебным словом.

Свистать текущий и. Используя метод addeventlistener навесом слушатель событий тип события которые будут слушать наш слушатель событий будет не mouseevent A Mouse 3D из класса в альтернатива 3D и при его срабатывания будет вызываться функция кота назовём опенду пандур всё в принципе со слушателем событие мы с вами разобрались он будет слушать у нас по каждой двери копируем название функции которые мы с вами определили и теперь создаем её за пределами функции конструктора пишем Public function Public function название нашей функции тип данных которые будут принимать наша функция будет аванс и наша функция ничего не будет возвращать напишем будет так было понятнее. Ну и собственно сама функция фигурных скобках для начала нам надо. По какому qubicum окликнули для этого. Обращаемся к нашему текущему кубику сосиски в и присвоим данной переменной следующее значение ссылка на объект содержится в детстве. Таргет поэтому. Обращаемся к аргументу е которые мы получили в нашу функцию ничего свойства. Таргет и приводим этот тип данных к типу бокс чтобы Flash поняла, что с работы всё с этим с вами разобрались Flash уже будет понимать, что по какому кубику мы с вами кликнули теперь, что должно происходить допустим. Если мы с вами будем кликнуть кликать непонятно откуда то — это будет не очень хорошо. Давайте ведём условия на проверку. Где находится камера по отношению к нашей двери и так используем оператор эв и будем проверять следующие — это разницу между положением нашей камеры и положением двери. Обращаемся к нашей камере её координаты X и вычитаем соответственно координату X текущего кубика и его свойства X. И если всё — это выражение будет меньше или равно 150 пикселям то будет выполняться какой-то условия, но так как мы не можем подойти. С 200 необходимо посчитать абсолютное значение данного выражения для этого вызовем функцию. Матч об матч которая посчитает нам абсолютное значение всё условия мы с вами разобрались. Теперь, что будет делаться если условия верно в скобках указывай, что наш текущий кубик будет изменять свою координату в данном случае по оси Y если дверь расположена в другой. соответственно подругой координате и так. Обращаемся опять-таки к нашему текущему кубику и своим следующие значения. Это будет перемещение запишем полностью данное выражение будем прибавлять к примеру 80 пикселей так как дверь у нас тут, а я думаю 80 будет вполне достаточно и после смещения на пикселей нашей двери. Нам необходимо удалить слушатель событий с этой двери чтобы она не исчезла совсем и так опять-таки. Обращаемся к текущей двери и. Используя метод Remove Event listener удаляем наши события типа mouseevent 3D клип и соответственно название opendoor всё с этим с вами разобрались. Если всё нормально то дверь у нас с вами должна открываться. Контру СНТ смотрю, что у нас с вами получилось. И так попробуем кликнуть по двери издалека ничего не происходит подождём ещё ближе. Отсюда тоже наша дверь не открывается подойдём практически вплотную всё в дверь у нас с вами открывается. Ну Видите вот за этим некоторые артефакт двери неправильно отрисовка эта проблема решается следующим образом наш объект то есть куб необходимо для него необходимо создать сортировку при отрисовке его грани. построить некоторое bsp дерево и — это дерево будет как бы временно. Что такое bsp дерево так на пальцах объяснить очень сложно поэтому читайте литературу обращайтесь базу знаний. Вики также можете найти какую-то информацию по данному вопросу на форуме альтернативы. Ну в общем решении заключается в следующем данное решение опять-таки нашел на форуме alternativa3d и так. Дима с вами создавали наш объекте в. Нам необходимо выполнить некоторую сортировку его грани. Обращаемся к нашему. Куба его свойства сардинка сардинка и присвоим ему следующее значение константы класса sorting. Ну для. Для этого необходимо нам импортировать данные класс называется альтернатива Engine 3D. Кора сочинг давать импортируем данные класс я скопирую название что-нибудь сократить время sorting и теперь значение константы динамик bsp так.

0 комментариев
0

Читайте также