2016-06-30 13 views
-1

オブジェクトを正確にする必要なく互いに検出する方法を教えてください。現在、私が作業しているプログラムでは、アイテムが左上隅で正確に一致していてもhitTestPointを使用していない場合にアイテムを一致させることしかできません。以下は私のコードです。hitTestObjectが正しく機能していませんAS3

if (bin1.hitTestObject(item)){ 
     updateShape(item, bin1); 
+0

"それほど正確である必要はありませんか?" –

+0

他のオブジェクトが左上端に当たったときにのみ他のオブジェクトを検出できるため、他のオブジェクトがどこにドラッグされたかを検出することはできません。 – CHIGGAJX

+0

[AS3のビットマップヒットテスト]の可能な複製(http://stackoverflow.com/questions/13046930/bitmap-hittesting-in-as3) –

答えて

1

bin1itemは、私は、彼らがすることができませんでしたどのように表示されていない両方のDisplayObject、ある場合(DisplayObjectがムービークリップやスプライトなどの他人の束によって拡張のベースクラスである)そして、あなたはできるはずですちょうど少し速く、汚れた計算を自分でやってください。あなたがあなたの質問に語ったところでは、bin1itemの起源が左上にあると信じていましたので、このコードを使用して、両方が存在する完全な四角形がすべてではないかどうかを調べることができます、すべての.width/2.height/2部品を取り外し、その起源は、左上には、実際にではなく、集中している場合は

if(Math.abs((bin1.x+bin1.width/2)-(item.x+item.width.2)) < bin1.width/2 + item.width/2 && 
    Math.abs((bin1.y+bin1.height/2)-(item.y+item.height/2)) < bin1.height/2 + item.height/2) 
     updateShape(item,bin1); 

:オブジェクトが回転している場合に、正確な、それはそれはあなたが探しているほとんど何のように聞こえます括弧内に.xおよび.y部を有する。うまくいけば、これは役立ちます!

関連する問題