2011-07-04 9 views
2

私はpapervision 3dを初めて使い、基本ビューで2つの表示オブジェクトを作成しました。
は、ここでは、コードの一部です:onRenderTick方法でPapervision 3d hitTestObjectが機能しません。

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

、私はしかし、stick.hitTestObjectは常にスティックが本当に当たった場合でもfalseを返す2つのオブジェクトが

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"); 
    } 
} 

をhittedしているかどうかをチェックしてみました私がフラッシュで見るようにボール。

何かお手数ですが〜 ありがとうございます!

+1

注:PaperVision3Dを初めて使用する場合は、Away3Dに切り替えるか、3DのMolehill(Flash Player 11)ベータAPIの学習/使用を開始する必要があります。 PaperVision3Dは、すべての目的と目的のために、死んでいます。 – TheDarkIn1978

+0

@ TheDarkIn1978ありがとうございました。 – YeJiabin

答えて

1

私は、3Dから2D(スクリーン)座標に変換するP3DのどこかにあるAPIを使用して、同様の問題を回避しました。そこで私は3Dビジュアルの上に通常のボタンを追加し、各フレームは3Dヒットエリアのスクリーン位置の中心にボタンを移動しました。しかし、これは、私が変換するヒット領域を必要としなかったためにのみ機能しました - 私は決してPapervision3Dで動作する "本当の" 3Dヒット領域を持っていませんでした。そのプロジェクトは孤立しているように見えるので、助けてもらうのが大変です。

+0

ありがとう、私は代わりにaway3dを使用します。 – YeJiabin

+0

最近私はAway3Dでかなり大きなプロジェクトを行っていますが、あなたがジグリブと組み合わせてaway3Dを使うことをお勧めします。 Jiglibは、ヒットテストを非常に検出できる物理ライブラリです。しかし、あなたが始める前に、それを調べてみましょう。なぜなら、ジグリブは、away3Dが提供するデフォルトのプリミティブを使用しないからです。 –

関連する問題