我是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,即使是我在闪光灯中看到的棒确实击中了球。
任何帮助表示赞赏〜 谢谢!
答案 0 :(得分:1)
很久以前,我通过使用我在P3D中找到的从3D转换为2D(屏幕)坐标的API解决了类似的问题。所以我在3D视觉效果的顶部添加了一个常规按钮,每一帧我都将按钮移动到3D点击区域的屏幕位置的中心位置。但这只能起作用,因为我不需要命中区域进行转换 - 我从未在Papervision3D中使用“真正的”3D命中区域。由于该项目显然是孤儿,如果你能提供帮助,我不会建议你花很多时间。