2012-03-13 15 views
1

私はタイルベースのマップ(たくさんの人のように)を持つプラットフォーマーを作っています。私はビデオゲームの開発から始めるので少し難しいです。私は自分で勉強するのではなく、この問題で私は立ち往生しています。マイマップは、このようなリストで作られています2dタイルベースのマップ - エッジでマップを繰り返す方法は?

:このリストでは

mapList[x][y] = tile 

、私はそれらをすべてのタイル上のループと描くことができます。

私がしたいことは、マップを「ループ」(繰り返し)することです。キャラクターが右限界(または左)に達すると、マップが繰り返されます。私はこれを行う方法を、私はすべてのフォーラムや、すべての質問を検索し理解していないが、私は何も見つからなかった:(

For instance

私は自分自身を明らかにしていた場合、私は知りませんが、英語であります私の言語最善と私は、このためにすみませんません:P

私を助けるために試みるか、ちょうど私の問題を読み取るための事前のおかげで

+0

使用[剰余](http://en.wikipedia.org/wiki/Modulo_operation)、負の数の剰余を台無しにしたくないあなたの境界に従って – Shai

+0

私も午前完全な答えを書くのに疲れています(特に、描画や一般的な実装に問題があるとは言いません)ので、次のようにタイルにアクセスしてタイルを繰り返すことができます: 'mapList [x%MAP_WIDTH] [y% MAP_HEIGHT] ' – flai

+0

@JaakkoLipsanen素晴らしい!両方ともありがとう、私はこのように仕事をしようとします:) –

答えて

0

あなたは幅x高細胞であるグリッドを持っている場合は、有効範囲。 Xのために.W-1

最初のアプローチ:

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

しかし、あなたはまた、prevX(X-1)のために何か、多分dは正または負とすることができるX +日間が必要になります。
あなたはとても

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

こんにちは、あなたの答えに感謝します。しかし、私は理解していないことがあります。 「次の」タイルと「前の」タイルを「どのように」表示できますか?私はこのループhttp://pastebin.com/R747q4dVで実際のタイルを描きます。とにかく、最初の答えをありがとう:)私は学びます。 –

関連する問題