Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > ビットマップの操作 > ピクセルの操作 > ピクセルレベルの衝突検出 | |||
BitmapData.hitTest() メソッドは、ビットマップデータと別のオブジェクトまたはポイント間でピクセルレベルの衝突を検出します。
BitmapData.hitTest() メソッドは、次の 5 つのパラメータを受け入れます。
firstPoint (ポイント) : このパラメータは、最初の BitmapData の左上のピクセル位置であり、ヒットテストが実行される場所を指します。firstAlphaThreshold (uint) : このパラメータは、このヒットテストで不透明と見なされるアルファチャンネルの最大値です。secondObject (オブジェクト) : このパラメータは、影響を受ける領域を示します。secondObject オブジェクトは、Rectangle、Point、Bitmap、または BitmapData オブジェクトです。このオブジェクトは、衝突検出が実行されるヒット領域を指します。secondBitmapDataPoint (ポイント) : このパラメータはオプションであり、2 つめの BitmapData オブジェクトのピクセル位置を指定します。このパラメータは、secondObject の値が BitmapData オブジェクトである場合にのみ使用します。デフォルト値は null です。secondAlphaThreshold (uint) : このパラメータはオプションであり、2 つめの BitmapData オブジェクトで不透明と見なされるアルファチャンネルの最大値です。デフォルト値は 1 です。このパラメータは、secondObject が BitmapData オブジェクトであり、両方の BitmapData オブジェクトが透明である場合にのみ使用されます。不透明なイメージで衝突を検出する場合、ActionScript はイメージを完全に不透明な矩形または境界ボックスとして扱います。または、透明なイメージでピクセルレベルのヒットテストを実行する場合は、両方のイメージが透明である必要があります。これに加え、ActionScript ではアルファしきい値パラメータを使用し、ピクセルがどの段階で透明から不透明に変わるかを決定します。
次の例では、3 つのビットマップイメージを作成し、false を返す衝突ポイントと true を返す衝突ポイントを使用してピクセル衝突を確認します。
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 100, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(20, 20, false, 0x00FF3300); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); // Create a red square. var redSquare1:Bitmap = new Bitmap(bmd2); this.addChild(redSquare1); redSquare1.x = 0; // Create a second red square. var redSquare2:Bitmap = new Bitmap(bmd2); this.addChild(redSquare2); redSquare2.x = 150; redSquare2.y = 150; // Define the point at the top-left corner of the bitmap. var pt1:Point = new Point(0, 0); // Define the point at the center of redSquare1. var pt2:Point = new Point(20, 20); // Define the point at the center of redSquare2. var pt3:Point = new Point(160, 160); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true trace(bmd1.hitTest(pt1, 0xFF, pt3)); // false
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000246.html