2012-03-13 2 views
1

저는 많은 사람들처럼 타일 기반의지도로 플랫폼 제작자를 만들고 있습니다. 비디오 게임의 개발부터 시작해서 좀 힘들어. 나는 혼자서 배우지 않을 것이지만이 문제에 대해 저는 붙어 있습니다. 모든 타일에, 내가 할 수있는 루프이 목록으로2 차원 타일 기반지도 - 가장자리에서지도를 반복하는 방법은 무엇입니까?

mapList[x][y] = tile 

과 그들을 잡아 :

내지도는이 같은 목록이 만들어집니다.

내가 원하는 것은지도를 "반복"(반복)하는 것입니다. 캐릭터가 오른쪽 한계 (또는 왼쪽)에 도달하면지도가 반복됩니다. 나는이 작업을 수행하는 방법을, 나는 모든 포럼 및 모든 질문을 검색 이해하지 않는,하지만 난 아무것도 발견 :(

For instance

나 자신을 분명히 만들고있어 경우 나도 몰라하지만 영어입니다 나의 가장 좋은 언어와 나는 이것에 대한 미안 해요 :.. 페이지 미리

감사합니다 저를 도우려고하거나 그냥 내 문제를 읽기 위해

+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 + D를 위해 필요합니다.
당신은 너무

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

안녕하세요, 당신의 대답에 감사드립니다. 그러나 내가 이해하지 못하는 것이있다. 어떻게하면 "다음"및 "이전"타일을 "표시"할 수 있습니까? 이 루프 http://pastebin.com/R747q4dV로 실제 타일을 그립니다. 어쨌든, 첫 번째 답변을 주셔서 감사합니다 :) 나는 배울 것입니다. –

관련 문제