2d плитка на основе карты - Как повторить карту по краям? - PullRequest
1 голос
/ 13 марта 2012

Я делаю платформер с картой на основе плиток (как и многие люди).Я начинаю с разработки видеоигр, так что это немного сложно.Я не хочу учиться сам, но в этой проблеме я застрял.

Мои карты сделаны с таким списком:

mapList[x][y] = tile

С этим списком я могу зациклить все плитки и нарисовать их.

Что я хочусделать это "зациклить" (повторить) карту.Я имею в виду, когда персонаж достигает правого предела (или влево), карта повторяется.Я не понимаю, как это сделать, я ищу все форумы и все вопросы, но я ничего не нашел: (

Например

Я незнаете, если я проясняю, но английский не мой лучший язык, и я прошу прощения за это: стр.

Заранее спасибо за попытку помочь мне или просто за чтение моей проблемы.

1 Ответ

0 голосов
/ 13 марта 2012

Если у вас есть сетка, состоящая из ячеек 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; }
...