2012-03-13 98 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