0

Actionscript 3 "faux" 2D 配列を使用してゲームにタイルを保存しています。プレイヤーが有効なタイルにのみ移動できるようにしたいと考えています。配列は「array[x][y]」のように構築され、配列の値とプレイヤーの動きの値の両方を知っているので、値が配置されています。indexOf が通常の配列で機能することは知っていますが、どうすれば 2D 配列をチェックできますか?

4

2 に答える 2

0

配列インスタンスがmyArrayの場合、次のように for ループを使用できます。

private function search(element:Object):Point
{
    for (var columIndex:int = 0; columIndex < myArray.length; i++)
    {
        var rowIndex:int = myArray[columIndex].indexOf(element);
        if (rowIndex != -1)
        {
            return new Point(columIndex, rowIndex);
        }
    }
    return null;
}

クラスPointは次のようになります。

package
{
    public class Point
    {
        public var x:int;
        public var y:int;

        public function Point(x:int, y:int)
        {
            this.x = x;
            this.y = y;
        }
    }
}
于 2013-03-25T03:21:46.933 に答える
0

indexOf()2D 配列で実行するには、ネストされた配列を反復処理して、2D 座標を返す必要があります (flash.geom.Pointそのために使用するか、このために調整した他のクラスを使用します)。ただし、配列内の正しい場所を照会してプレイヤーが有効な場所に移動したかどうかを確認し、その有効性を確認すると、より適切に実行できます。

function isValid(player:Player,playerWantsToMoveTo:Point):Boolean {...}
于 2013-03-25T04:00:25.497 に答える