Papervision 3d hitTestObject не работает? - PullRequest
2 голосов
/ 04 июля 2011

Я новичок в 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 всегда возвращает ложь, даже если палка действительно бьет по мячу, как я вижу во вспышке.

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

1 Ответ

1 голос
/ 04 июля 2011

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

...