0

FrogActionsScript 3衝突

私は予想通り、私のカエルとフライの間の衝突のための私のコードは動作しません。現時点では、カエルと呼ばれるフラッシュゲームを開発しています。私はそれを持っているので、下のリンクされているメソッド(最後の例)に似たように動作します。

Collision detection methods, hitTest and hitTestObject alternatives

任意の助けいただければ幸いです。

function hitTargetFunction():void { 
    for (i = 0; i < insectsMC.length; i++) { 
     for (j = 0; j < insectsMC[i].length; j++) { 
      if (frogMC.hitTestObject(insectsMC[i][j])) { 
       trace('Target: ' + insectsMC[i][j].name); 
       score += 1; 
       trace('Score: '+score); 
       insectsMC[i][j].x = 0 - insectsMC[i][j].width * 2; 
      } 
     } 
    } 
} 
+0

何が間違っていますか**? –

+0

@SamDeHaan基本的にこのコードでは、四角形のオブジェクトの周りに「境界ボックス」を追加していますが、私のムービークリップの空の部分を衝突として数えさせたくありません。 –

+0

私はムービースリップ内に小さなムービークリップを作成し、それをカエルの舌の端に置いてカエル全体の代わりに使用すると思います。 –

答えて

1

フロッグムービークリップ内にムービークリップ/スプライトを作成することが、この状況ではおそらくあなたのために最適です。 PixelPerfectCollisionは非常に素晴らしいと便利です(しかし、大きなゲームでは、高価です)が、衝突はカエルのどの部分でも起こります。もちろん、カエルのムービークリップを分解し、ちょうど舌の上でPixelPerfectCollisionを行うこともできます。しかし、これがコースワークの場合、私はカエルの内部のある種の表示オブジェクトに対してhitTest()を実行することに固執します。

2

Collision Detection Kitを試してみることをお勧めしますか?

私はそれがあなたが必要とするものすべてを行うと確信しています。また、AS3のコードサンプルが書かれているので、あなたが役に立つと思っています。

+0

これは解答として受け入れますが、これは最善の解決策ですが、私は授業でこれをやっていますが、残念なことにそのコードを実際に使用することはできません。 –

0

第三者図書館を使用することが許可されていない場合は、pixel-level collision detection with ActionScript 3.0のこの優れたチュートリアルをご覧ください。

一般的な考え方は、ベクターグラフィックスのBitmapDataコピーを作成し、そのクラスのhitTestメソッドを使用してピクセルレベルで衝突をチェックすることです。