Movieclipコンテナで2つの図形をラップしたとします。ある形状が別の形状の上にあるかどうかをどのように検出できますか?より正確には、1つの形状が他の形状の一部/すべてを覆っているかどうか。
これまでは両方の形状の座標を比較することで何とかできましたが、組み込み関数やもっと簡単な方法があるのではないかと思います。ありがとう
Movieclipコンテナで2つの図形をラップしたとします。ある形状が別の形状の上にあるかどうかをどのように検出できますか?より正確には、1つの形状が他の形状の一部/すべてを覆っているかどうか。
これまでは両方の形状の座標を比較することで何とかできましたが、組み込み関数やもっと簡単な方法があるのではないかと思います。ありがとう
DisplayObject.hitTestObject(obj:DisplayObject):ブール値
より細かいヒットテストが必要で、BitmapDataオブジェクトを処理する意思がある場合(BitmapData.draw(dispObj)を使用してDisplayObjectをBitmapDataに描画できます)。
これを行うには、いくつかの方法があります。
flash.display.DisplayObject.hitTest()
また
flash.display.DisplayObject.getRect()
例:sprite1.getRect(stage).intersects(sprite2.getRect(stage));
hitTestObjecthttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#hitTestObject%28%29を使用できます
trace(shape1.hitTestObject(shape2));
ただし、オブジェクトの境界だけが重なっている場合、これは単純なテストであることに注意してください。ピクセルパーフェクトな衝突テストが必要な場合は、 http: //www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/などのサードパーティライブラリを使用する必要があります。