Papervision 3d hitTestObject не работает?

Я новичок в papervision 3d и создал два экранных объекта в основном виде.
Вот часть кода:

...
_stick = new Cube(materials, 50, 5, 500);
_ball = new Sphere(new ColorMaterial(0xfc0000), 80);

В методе onRenderTick я попытался проверить, поражены ли два объекта

override protected function onRenderTick(event:Event=null):void {
    super.onRenderTick(event);
    _stick.rotationY = stage.mouseX / stage.width * 360;
    _stick.rotationX = stage.mouseY / stage.height * 360;

    if (stick.hitTestObject(this.ball)) {
        trace ("hit");
    }
}

Однако stick.hitTestObject всегда возвращает false, даже если клюшка действительно попадает в мяч, как я вижу во вспышке.

Любая помощь приветствуется ~ Спасибо!


person YeJiabin    schedule 04.07.2011    source источник
comment
просто примечание: если вы новичок в PaperVision3D, вам следует переключиться на Away3D или даже начать изучать / использовать бета-API Molehill (Flash Player 11) для 3D. PaperVision3D, по сути, мертв.   -  person Chunky Chunk    schedule 04.07.2011


Ответы (1)


Некоторое время назад я работал над подобной проблемой, используя API, который я нашел где-то в P3D, который преобразует координаты из 3D в 2D (экранные). Поэтому я добавил обычную кнопку поверх трехмерных изображений и в каждом кадре перемещал кнопку так, чтобы она располагалась в центре экрана области трехмерного отображения. Но это сработало только потому, что мне не нужно было преобразовывать пораженную область - у меня никогда не было «настоящих» трехмерных областей для работы в Papervision3D. А поскольку этот проект явно осиротел, я бы не советовал тратить на него много времени, если вы можете ему помочь.

person fenomas    schedule 04.07.2011
comment
Недавно я выполнил довольно большой проект с Away3D, и могу ли я предложить вам использовать away3D в сочетании с jiglib. Jiglib - это физическая библиотека, которая очень способна обнаруживать хит-тесты. Однако я бы изучил это, прежде чем вы начнете, потому что jiglib не использует примитивы по умолчанию, которые предлагает away3D. - person Michiel Standaert; 04.07.2011