gpt4 book ai didi

arrays - 最佳引用二维数组?

转载 作者:行者123 更新时间:2023-12-03 17:10:53 24 4
gpt4 key购买 nike

因此,我正在创建一个相当基本的架空 2d 游戏,用户可以在其中“绘制” map 。 (实际上,他们不画它,而是手动输入 x/y 的列表,但设计方面现在并不重要。)

添加新图 block 时,该图 block 将进入游戏中所有图 block 的数组中。

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

有时我想确定某个位置有哪些图 block 。一种(恕我直言,不好的)方法是获取 x/y 并循环遍历所有图 block 并检查它们是否位于该位置。

我目前的做法是拥有一个单独的空元素二维数组,并且当添加图 block 时,它会设置在该数组中。 (即tilemap[10][10]=tile[100])当然,因为值可能为负数,所以tilemap [0][0]实际上是-1000/-1000图 block 。 (选择作为任意限制)

有更好的方法吗?我觉得使用大量大部分为空对象的数组可能会更优化。

非常感谢。

最佳答案

一种可能的解决方案是保留一个对象字典,其中键是x/y位置。

因此,如果您要在 10,20 添加图 block ,则可以将其存储在对象中,如下所示:

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

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

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

关于arrays - 最佳引用二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com