0

我正在使用 Actionscript 3“人造”2D 数组在游戏中存储图块,并且我希望让我的玩家仅移动到有效图块。数组像“array[x][y]”一样构建,并且我有适当的值,知道数组值和玩家移动值。我知道 indexOf 适用于常规数组,但我如何检查二维数组?

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 回答