Papervision 3d hitTestObject不起作用?

时间:2011-07-04 06:37:28

标签: flash actionscript-3 actionscript papervision3d

我是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,即使是我在闪光灯中看到的棒确实击中了球。

任何帮助表示赞赏〜 谢谢!

1 个答案:

答案 0 :(得分:1)

很久以前,我通过使用我在P3D中找到的从3D转换为2D(屏幕)坐标的API解决了类似的问题。所以我在3D视觉效果的顶部添加了一个常规按钮,每一帧我都将按钮移动到3D点击区域的屏幕位置的中心位置。但这只能起作用,因为我不需要命中区域进行转换 - 我从未在Papervision3D中使用“真正的”3D命中区域。由于该项目显然是孤儿,如果你能提供帮助,我不会建议你花很多时间。