访问二维数组中的元素 我正在用C++编写一个平台游戏,用一个平铺地图来构建世界。

访问二维数组中的元素 我正在用C++编写一个平台游戏,用一个平铺地图来构建世界。,c++,multidimensional-array,tile,C++,Multidimensional Array,Tile,地图包含指定的分幅值: 二维阵列的示例: int map[4][4]={ {1, 1, 1, 1}, {1, 0, 0, 1}, {1, 0, 0, 1}, {1, 1, 1, 1}, }; 我以类似的方式创建了一个精灵:intsprite[1][1]={{2} 我的问题是,如何访问2D数组中的特定磁贴或元素? 我读了这篇文章,想知道2D数组是否不是最好的使用方法 我的精灵总是以窗户为中心,一按键盘,我的世界就在他身后移动 我想与某些瓷砖碰撞,因此需要在我的sp

地图包含指定的分幅值:

二维阵列的示例:

int map[4][4]={
    {1, 1, 1, 1},
    {1, 0, 0, 1},
    {1, 0, 0, 1},
    {1, 1, 1, 1}, };

我以类似的方式创建了一个精灵:
intsprite[1][1]={{2}

我的问题是,如何访问2D数组中的特定磁贴或元素

我读了这篇文章,想知道2D数组是否不是最好的使用方法

我的精灵总是以窗户为中心,一按键盘,我的世界就在他身后移动

我想与某些瓷砖碰撞,因此需要在我的sprite 2D数组瓷砖和我的Map 2D数组之间进行一些交互

同样,我可以走出地图,因为我没有另外编码。我该怎么做呢?理想情况下,我想阻止他离开地图,然后我可以将碰撞与之整合

下面是事情的屏幕截图(但地图比上面显示的要大): 如果我有:

int array[4][4];
我可以通过以下方式访问元素:

array[a_num][also_a_num]
其中i和j是有效索引

通常,当我想要这样的东西时,我只使用1d数组和一些数学

int height = a_num;
int width = also_a_num;
int amap[height * width];
int x_pos,y_pos;
int value = amap[y_pos*width + x_pos];
您可以很容易地检查x_pos和y_pos的边界

至于冲突,您可以尝试使用结构数组

struct tile{
  bool walkable;
  int type;
};

tile amap[height*width];

intsprite[1][1]={{2}这是一个二维数组,其中只有一个元素。你为什么要那样?2代表什么?我试着用一个
OpenGL四元组
绘制一个精灵,但它没有显示在屏幕上,这样做时也不会显示平铺。我为精灵使用了一个2D数组来解决这个问题。另外,我认为将精灵保持为一个互动块比将互动块与一个自定义矩形互动块更容易。
2
表示分配给
Tile2
的值。这是一个非常好的答案。谢谢:D我会提前给你的。是的,我在问题中链接的帖子/论坛也使用了1D数组。谢谢你的时间,非常感谢。