| Author |
Message |
|
|
я обошелся без шаманства,
все делал как в примерах..
как я понимаю, контролер по умолчанию смотрит вперед по оси Y.
соответственно если камеру направить поворотом тоже по оси Y - камера тоже будет смотреть туда-же куда и контролер.
а дальше направляя контролер будет направляться и обзор камеры...
|
 |
|
|
если я не ошибаюсь - камера, при привязке камеры к WalkController-у помещается в его центр
(это по умолчанию.. что будет, если после привязки изменить ее координаты - пока не пробывал, возможно координаты камеры изменятся относительно контролера).
соответственно вам нужно установить в нужную позицию на сцене не камеру, а иенно WalkController.
то же и с направлением камеры (возможно оно задается относительно оси контролера) - по умолчанию она смотрит вверх.
чтобы смотреть вперед я поворачивал ее на 90 градусов (camera.rotationX = - MathUtils.DEG90);
и привязывал к контролеру.
после чего, если было нужно - менял направление у WalkController-а.
|
 |
|
|
поэкспериментировав я понял что вы имеете в виду:
объект драггится только за те грани, которые были созданы непосредственно в нем.
при загрузке в классе шарика, кубика, пирамидки и создании одной грани, событие ловится только на этой грани..
применив кривой способ создания события MouseEvent3D.MOUSE_DOWN для родительского не-Mesh-объекта, мне удалось таки отловить на нем нажатие мышью.
но при попытке потащить объект выскакивает ошибка. судя по всему почему-то сбрасывается переменная активного объекта.
подозреваю что сам подход в принципе неверен..
если не трудно, толкните пожалуста в какую сторону надо двигаться, чтобы мой объект, состоящий, например, из кубика, шарика и пирамидки драггался как одно целое...
то есть, класс "главный" загружает класс "шарик-пирамидка-кубик", который в свою очередь загружает три класса - "шарик", "пирамидка" и "кубик", которые могут загружать в себя что-то еще. из из всего этого Mesh-ами будут объекты только самого нижнего уровня.
наверняка же есть способ, но из-за того, что мое ООП пока находится в стадии изучения, приходится пробовать все методом тыка в документацию..
|
 |
|
|
уточню:
правильно ли я понял, что в данном случае, собственные грани есть только у объекта x3DSLoader.loader:Loader3DS, а у самого x3DSLoader их как бы и нет?
и ловить события мыши мне надо непосредственно на x3DSLoader.loader ?
|
 |
|
|
день добрый.
есть класс загрузки 3DS-файла - x3DSLoader (основан на уроке "Импорт модели").
есть основной класс, в котором я создаю сцену, ставлю камеру, ... .
там же создаю объект класса x3DSLoader (шарик) и добавляю на сцену примитив Box.
для обоих объектов прописал листенеров
дальше, как в примере SimpleMouseEventsDemo.as (нашел здесь http://forum.alternativaplatform.com/posts/list/281.page#1540) идет обработка мышиных событий, то есть просто двигаю объекты.
так вот, на Box-е все работает, а на загруженном - не ловит клик мышкой.
Подозреваю, что дело в том, что непосредственно загруженный из 3DS объект является дочерним по отношению к ball(x3DSLoader), который выступает чем-то вроде контейнера без габаритов, и возможно надо как-то обеспечить наследование отлова событий.
здесь http://forum.alternativaplatform.com/posts/list/352.page#1927 видел чем-то похожую проблему, но указанное решение мне не подходит..
добавил исходyик на Flash CS4.
|
 |
|
|
уточню на всякий случай:
то есть если я делаю комнату, и мне нужен дверной проем, через который можно будет ходить, я должен делать стену с дверью из трех прямоугольников?.....
|
 |
|
|
возможно
когда возьмусь за импорт 3DS конкретно - попробую.
пока что экспериметы с уроком по импорту работают не слишком быстро..
до 7 секунд на загрузку внешне кажущейся простой модели.
в любом случае спасибо! разбил поверхности на два прямоуугольника - перестал проваливаться.
|
 |
|
|
невесело..
теперь придеца строить мощные алгоритмы расчета UV-координат на стыковке граней..
примерно вот как-то так
или есть более простые способы наложения тайловых текстур на несколько состыкованных полигонов?
|
 |
|
|
значит я все-таки был прав и дело в форме этих полигонов?..
ясно.. спасибо (:
а
Не надо так делать
это как?
не надо создавать невыпуклые многоугольники?
то есть мне его разбить на два прямоугольника?..
че-то совсем неинтересно..
а если структура будет вообще сложная.. типа профиля лестницы или звезды - разбивать ну кучу мелких поли?
|
 |
|
|
да, у меня стоит CS 4.
попробовал walkcontroller.
не помогло, тоже самое - пол и потолок насквозь.
думал сначала что дело в tile-текстуре пола и потолка, но нет..
больше пол/потолок от стен ничем не отличается, кроме горизонтальности..
|
 |
|
|
сработало. (:
спасибо.
то есть получается, что само по себе создание объекта внутри класса не подразумевает автоматическое присоединение его как дочернего?
|
 |
|
|
утро доброе!
не могу понять почему на сцене не отображается примитив Box.
создал класс:
создаю на сцене объект:
Треугольник на экране есть, а коробки - нет.
|
 |
|
|
день добрый!
сделал во flash cs4 комнату, за основу брал исходники урока "Материалы".
навесил текстур на стены и потолок с полом.
камеру поставил внутри.
при движении камеры - она легко пролетает через потолок и пол.
причем иногда упирается в эти поверхности и проскальзывает по ним некоторое расстояние, но потом проваливается.
со стенами все нормально. упирается и дальше не идет.
есть подозрение что такое происходит из-за сложной формы пола/потолка.
кто-нибудь сталкивался с подобным? и повторяется ли у вас этот глюк?
библиотеки использовал для FP10.
|
 |
|
|
|
|