1

私は迷路ゲームにひねりを加えていて、物理学でボールを動かすことができましたが、周りの壁にボールを当てるのに苦労しています. 現在、黒い壁のムービー クリップであり、このコードを使用して停止しようとしました。

if (character.hitTestObject(walls)){
        character.x = //something
        character.y = //something
    }

これが行うのは、ムービー クリップの任意の部分 (空白も含む) にヒットしたときだけで、キャラクターを動かします。

特定の色に当たったことを検出するために使用できるコードはありますか?

4

1 に答える 1

0

これを行う 1 つの方法は、メソッドを使用hitTestPoint()して、コーナーのいずれかが壁に当たったかどうかをテストすることです。

hitTestPoint()単一の位置のみをテストして、その点がオブジェクトと衝突するかどうかを確認します。これは、キャラクターの左上隅をテストして、壁に触れているかどうかを確認する方法です。

// I am assuming that x,y is the top left corner of your character

if (wall.hitPointTest(character.x, character.y, true))
{
   // top left collided with wall
{

したがって、すべてのコーナーに対して同じことを行うことができます。または、必要に応じて、キャラクターをチェックする衝突ポイントを決定することもできます。

精度のレベルによっては、この方法が必要に応じてうまく機能する場合があります。しかし、ピクセルの完全な衝突が必要な場合は、次のリンクをチェックしてください。

http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/

于 2013-04-27T14:21:00.200 に答える