如何表示基于RPG图块的地图?

时间:2012-08-02 06:56:12

标签: arrays data-structures maps

我有一个基于图块的RPG系统,其中特定的图块类型由字符串表示(即Grass =“g”,Dirt =“d”)。问题是我不知道如何以一种方式表示地图(按特定顺序聚集的一组图块),其中每个图块可以通过其x / y坐标有效地访问。地图应该以数组格式表示:

map[0].coords[x][y] = "g";

或者也许以其他方式?

2 个答案:

答案 0 :(得分:3)

这取决于您使用的语言,但二维数组通常是一种有效的方法。

访问数组中的元素通常很快,因为内存中给定元素的位置可以根据提供的数组索引计算,而不必迭代其他元素。其他数据结构(例如链表)对于这种类型的检索要慢得多。

答案 1 :(得分:2)

一些事情,取决于语言:

1:如果可能,为地形类型设置常量整数。常量使用较少的内存并且更快地进行referance / retrieve,与字符串上的整数相同

2:二维可能是最有效的方式。

一个例子

CONST(INT) GRASS = 1;
CONST(INT) DIRT = 2;
CONST(INT) SNOW = 3;

// assuming map is an array containing objects, and coords is a 2d
// array of said object:
map[0].coords[x,y] = GRASS;