我正在制作一款平台游戏,带有基于图 block 的 map (就像很多人一样)。我开始从事视频游戏的开发,所以有点困难。我不想自己学习,但在这个问题上我被困住了。
我的 map 是用这样的列表制作的:
mapList[x][y] = tile
有了这个列表,我可以遍历所有的 Tiles 并绘制它们。
我想做的是“循环”(重复) map 。我的意思是,当角色到达右极限(或左极限)时, map 会重复。我不明白该怎么做,我搜索了所有论坛和所有问题,但我一无所获:(
我不知道我是否表达清楚了,但英语不是我最好的语言,对此我深表歉意:p。
在此先感谢您尝试帮助我或阅读我的问题。
最佳答案
当您的网格是 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; }
关于c# - 基于二维图 block 的 map - 如何在边缘重复 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684910/