Actionscript 3 如何计算tilemap块的主索引?

Actionscript 3 如何计算tilemap块的主索引?,actionscript-3,actionscript,tiles-game,Actionscript 3,Actionscript,Tiles Game,我有一个2D tilemap,它以块的形式生成,每个块由2x2个单元格组成。我可以引用块本身并获得块中每个特定单元的索引。但是,我还想将第一个磁贴的索引存储在该块中,这不是自动生成的 例如,单击突出显示的区块将始终生成“0”,单击下一个区块将生成“2”,单击其下的区块将始终生成“20”。红色数字表示磁贴/单元的索引。黄色的轮廓显示了一个实际的块 在块的范围内,获得0、2、4、6、8、20等等的最佳方法是什么? 生成此代码的代码在Actionscript 3中,是一个基本的双for循环 编辑:

我有一个2D tilemap,它以块的形式生成,每个块由2x2个单元格组成。我可以引用块本身并获得块中每个特定单元的索引。但是,我还想将第一个磁贴的索引存储在该块中,这不是自动生成的

例如,单击突出显示的区块将始终生成“0”,单击下一个区块将生成“2”,单击其下的区块将始终生成“20”。红色数字表示磁贴/单元的索引。黄色的轮廓显示了一个实际的块

在块的范围内,获得0、2、4、6、8、20等等的最佳方法是什么? 生成此代码的代码在Actionscript 3中,是一个基本的双for循环

编辑:

我考虑了一会儿,决定加入我的索引搜索代码。我不完全确定这是否有帮助,特别是因为它用于查找单个单元格索引,而不是块中的特定索引位置

        public function mousePosistion():Number
    {
        var mouseColX: Number = 0;
        var mouseColY: Number = 0;

        mouseColY = Math.ceil(this.mouseY / 64);
        mouseColX = Math.ceil(this.mouseX / 64);

        var mouseIndex:Number = mouseColX + (20 * mouseColY);

        return mouseIndex;
    }

注意:它是为实际地图格式化的,实际地图的宽度为20,而不是示例中的10。

从我的头顶往下看,只要看看你的图像,你就可以:

[in pseudocode]
if tileIndex tens digit is odd, minus 10
if tileIndex ones digit is odd, minus 1

过了一会儿我就明白了。使用双For循环,索引计算结果如下:baseIndex=(X*2)+(Y*20);完全匹配基本分幅上的每个索引。2是超级的大小,20是地图的宽度加倍。要将其扩展为基于变量的解决方案,请执行以下操作:

 baseIndex = (X * chunkSize) + (Y * (mapSize * 2));