最佳参考2d数组?

时间:2011-05-20 09:45:17

标签: arrays flash actionscript-3 optimization actionscript

所以,我正在创建一个相当基本的开销2D游戏,用户可以“绘制”地图。 (实际上,他们不画画,手动输入x / y的列表,但设计方面刚才很重要。)

添加新图块时,该图块会进入所有图块的数组。

中心点是0,0。瓷砖可以在所有方向添加,因此可以是1,1或100,100或-50,-50。

有时候我想确定某个位置的图块。一个(imho bad)这样做的方法是获取x / y并遍历所有切片并检查它们是否是该位置。

我目前正在做的方法是使用一个单独的2d数组的null元素,并且当添加一个tile时,它在该数组中设置。 (即tilemap [10] [10] = tile [100]) 当然,因为值可以为负,所以tilemap [0] [0]实际上是-1000 / -1000块。 (被选为任意限制)

有更好的方法吗?我觉得使用大量空的物体可能更为理想。

非常感谢。

2 个答案:

答案 0 :(得分:4)

一种可能的解决方案是保留ObjectDictionary,其中键是x / y位置。

因此,如果您在10,20添加了一个磁贴,则可以将其存储在对象中:

this.m_objs[tileX + "_" + tileY] = new Tile;

因此,如果您想通过使用以下内容检查位置10,20处是否有某些内容:

public function checkIfExists( x:int, y:int ):void
{
    return ( this.m_objs[x + "_" + y] != undefined );
}

答案 1 :(得分:2)

我建议使用Dictionary,因为搜索它比搜索数组要快得多。从可能的坐标判断-1000 / -1000这将是一个很大的优势!