Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 将栅格中的对象平铺为3_Flash_Actionscript 3_Grid_Air_Tile - Fatal编程技术网

Flash 将栅格中的对象平铺为3

Flash 将栅格中的对象平铺为3,flash,actionscript-3,grid,air,tile,Flash,Actionscript 3,Grid,Air,Tile,我想将一组对象放入网格中。我知道代码很简单,但不知何故,我没有得到我想要的 代码: const PADDING:Number=10: const COL:Number=Math.floor(Math.sqrt(tiles.length)); const ROW:Number=Math.floor(Math.sqrt(tiles.length)); 对于(变量i:int=0;i

我想将一组对象放入网格中。我知道代码很简单,但不知何故,我没有得到我想要的

代码:

const PADDING:Number=10:
const COL:Number=Math.floor(Math.sqrt(tiles.length));
const ROW:Number=Math.floor(Math.sqrt(tiles.length));
对于(变量i:int=0;i
注:
数组在别处声明为公共变量
这是我正在构建的游戏引擎的一部分,因此我希望它尽可能灵活
-瓷砖正在读取XML文件的属性。但我不想使用XML硬编码瓷砖的位置


提前感谢您的帮助。如果您需要更多说明,请告诉我。

我建议您研究模运算符,而不是嵌套循环

这篇博文概述了如何做到这一点:

使用David的示例作为起点,您的代码将如下所示:

var COLUMNS:int = int(Math.sqrt(tiles.length));
var PADDING:Number = 10;

for(var i:int; i < tiles.length; i++)
{
    var tile:TileSprite = tiles[i];
    tile.x = (i % COLUMNS) * (tile.width + PADDING);
    tile.y = int(i / COLUMNS) * (tile.height + PADDING);
}
var列:int=int(Math.sqrt(tiles.length));
变量填充:数字=10;
for(变量i:int;i
我建议研究模运算符,而不是嵌套循环

这篇博文概述了如何做到这一点:

使用David的示例作为起点,您的代码将如下所示:

var COLUMNS:int = int(Math.sqrt(tiles.length));
var PADDING:Number = 10;

for(var i:int; i < tiles.length; i++)
{
    var tile:TileSprite = tiles[i];
    tile.x = (i % COLUMNS) * (tile.width + PADDING);
    tile.y = int(i / COLUMNS) * (tile.height + PADDING);
}
var列:int=int(Math.sqrt(tiles.length));
变量填充:数字=10;
for(变量i:int;i
而不是使用
Math.floor
,只需将其转换为更快的值即可。例如
var COLUMNS:int=int(Math.sqrt(tiles.length));
此外,我还保留了
COLUMNS
ROWS
变量(在XML中),因为在当前示例中,它只允许方形映射,这不是很灵活:)例如,
var列:int=int(tiles.length/行)
对这两个帐户都很好。更新示例。为了简单起见,我只是更新示例以使用强制转换,因为其余部分解决了OP的原始问题。但我确实同意,通过XML将列计数保持在外部有更好的体系结构意义。与其使用
Math.floor
,不如使用更快的强制转换。例如
 var COLUMNS:int=int(Math.sqrt(tiles.length));
此外,我还保留了
COLUMNS
ROWS
变量(在XML中),因为在您当前的示例中,它只允许方形映射,这不是很灵活:)例如
var COLUMNS:int=int(tiles.length/ROWS)两个帐户的通话都很好。更新示例。为了简单起见,我只是更新示例以使用casting,因为其余部分解决了OP的原始问题。但我同意,通过XML将列计数保持在外部有更好的体系结构意义。