基于2d图块的地图 - 如何在边缘重复地图?

时间:2012-03-13 13:28:09

标签: c# algorithm xna-4.0

我正在制作平台游戏,使用基于图块的地图(像很多人一样)。我从视频游戏的开发开始,所以它有点难。我不想自己学习,但在这个问题上,我被困住了。

我的地图是用这样的列表制作的:

mapList[x][y] = tile

通过这个列表,我可以遍历所有Tiles并绘制它们。

我想做的是“循环”(重复)地图。我的意思是,当角色达到正确的极限(或左)时,地图会重复。我不明白怎么做,我搜索所有论坛和所有问题,但我一无所获:(

For instance

我不知道自己是否清楚自己,但英语不是我最好的语言,我很抱歉:p。

提前感谢您试图帮助我或仅仅是为了阅读我的问题。

1 个答案:

答案 0 :(得分:0)

如果网格是WxH单元格,则X的有效范围为0..W-1

所以作为第一种方法:

 int nextX = (X+1) % W;   // wraps around to 0

但是你也需要一些针对prevX(X-1)的东西,也许还需要X + d,其中d可以是正面的或负面的。
你不想搞乱负数的模数,所以

 int MoveX(int d) { return (X+W+d) % W; }