2012-03-13 100 views
1

我正在制作一个平台游戏,有基于地图的地图(就像很多人一样)。我从视频游戏的开发开始,所以有点困难。我不想自己学习,但在这个问题上我卡住了。2d基于图块的地图 - 如何在边缘重复地图?

我的地图与这样的列表中进行:

mapList[x][y] = tile 

有了这个名单,我可以在所有瓷砖环和吸引他们。

我想要做的是“循环”(重复)地图。我的意思是,当角色达到正确的界限(或左侧)时,地图会重复。我不知道如何做到这一点,我搜索所有的论坛和所有的问题,但我什么也没找到:(

For instance

我不知道我在做我自己清楚,但英语是不是我最好的语言,我很抱歉这个:第提前

感谢试图帮助我或者只是为了看我的问题

+0

使用[模](http://en.wikipedia.org/wiki/Modulo_operation)根据你的界限 – Shai 2012-03-13 13:33:07

+0

我太厌倦了写一个完整的答案(特别是因为你没有告诉我们你是否在绘图时遇到了问题,或者一般都会遇到问题),但是你可以通过像这样访问tile来重复贴图:'mapList [x%MAP_WIDTH] [y% MAP_HEIGHT]' – flai 2012-03-13 13:33:43

+0

@JaakkoLipsanen太棒了!谢谢你们,我会试试这样:) – 2012-03-13 13:49:28

回答

0

当你有一个网格宽x高细胞,有效范围对于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; } 
+0

你好,谢谢你的回答。但有一件事我不明白。我如何“展示”“下一个”和“之前”的瓷砖。我用这个循环http://pastebin.com/R747q4dV绘制我的实际瓷砖。无论如何,谢谢你的第一个答案:)我会学习。 – 2012-03-13 22:18:42