我有一个二维数组,我想知道如何引用其中的行和列。我使用 [row,column] 还是 [column,row]?我也有一些图形。我是用 (row*size,col*size) 还是 (col*size,row*size) 计算每个图形的 (x,y) 坐标集?
整个二维数组是网格的构建指令。数组中的每个元素都指向网格的一部分。我知道如何构建这个网格及其片段,并且我知道如何访问和操作数组的元素。
问题是,当我构建网格时,我必须计算每个部分的 x 和 y 坐标,但我只是不知道我的变量 curRow 是否应该用于 x 或 y 坐标。与变量 curCol 类似。
我的代码正在运行,但它让我感到困惑。我认为它就像行控制 y 坐标和列控制 x 坐标,因为我刚刚了解了矩阵的引用方式。我问,因为我想到我不确定如何做到这一点。过去我使用 [row,column] 循环和 (row*size,col*size) 定位。
到目前为止的代码是:
function buildGrid(gridInfo:Array):Sprite {
var displaySprite:Sprite = new Sprite();
for(var curRow:uint=0;curRow<gridInfo.length;curRow++) {
for(var curCol:uint=0;curCol<gridInfo[curRow].length;curCol++) {
var infoRef:Object = gridInfo[curRow][curCol];//create reference for fast access
var pieceGraphic:Shape = new Shape();
pieceGraphic.graphics.beginFill(infoRef.fillColor);
pieceGraphic.graphics.lineStyle(infoRef.borderThickness,infoRef.theBorderColor);
pieceGraphic.graphics.drawRect(0,0,infoRef.sideLength,infoRef.sideLength);
pieceGraphic.graphics.endFill();
pieceGraphic.x = curRow*(infoRef.sideLength+infoRef.spaceX);//later use of graphic requires known x
pieceGraphic.y = curCol*(infoRef.sideLength+infoRef.spaceY);//later use of graphic requires known y
displaySprite.addChild(pieceGraphic);
}
}
return displaySprite;
}