2016-11-12 12 views
0

게임을 코딩하고 있습니다. 배경을에서 까지 반복하여을 반복해서 쓰길 원합니다. 가로 기와 배경

내가 카메라의 X 긍정적 때 카메라의 X는 음의 세 번째 경우 첫 번째의 drawImage 이미지를 그립니다

xOffset = (int) (camera.getX() % WIDTH); 

g.drawImage(bgInv, xOffset - WIDTH, 0, WIDTH, HEIGHT, null); 
g.translate(xOffset, 0); 
g.drawImage(bg, 0, 0, WIDTH, HEIGHT, null); 
g.translate(-xOffset, 0); 
g.drawImage(bgInv, xOffset + WIDTH, 0, WIDTH, HEIGHT, null); 

사용하고 코드입니다.

  • BG는
  • bgInv 내가 이동하고있어 및 xoffset이 0에 WIDTH에서 갈 때, 그것의 효과를 준다이다

문제 반전 배경입니다 일반 배경입니다 "순간 이동".

Click here to see

콘솔은 xoffset이

내가 xoffset이 얻을 모듈을 사용하고 있지만 더 나은 방법을 알아낼하지 않았기 때문에 그것이 알고를 출력한다 ...

미리 감사드립니다.

+1

모듈로 음수를 제공합니다

은 그래서 당신이 할 수있는 것은 다음이다. 'if (xOffset <0) xOffset + = WIDTH;'를 두 번째 줄로 사용해보십시오. – Marco13

+0

@ Marco13 xOffsets는 부정적인 결과를 가져 오지는 않지만 ur if 문을 사용하고 while 문으로 변경하려고했지만 여전히 작동하지 않습니다. – L3n

+0

이 게시물이 도움이 될 수 있습니다. http://stackoverflow.com/questions/16138363/infinite-background -for-game/16138735 # 16138735 – camickr

답변

1

정확하게 이해했다면, 반복하고 싶은 것은 2 * WIDTH에 의해입니다.이미지, 여기서 왼쪽 절반은 배경 이미지이고 오른쪽 절반은 수평으로 뒤집힌 같은 이미지입니다. 음수의

xOffset = (int) (camera.getX() % (2 * WIDTH)); 

// draw the background image at x = xOffset - 2 * WIDTH 
g.drawImage(bg, xOffset - 2 * WIDTH, 0, WIDTH, HEIGHT, null); 
g.drawImage(bgInv, xOffset - WIDTH, 0, WIDTH, HEIGHT, null); 

// draw the background image at x = xOffset 
g.drawImage(bg, xOffset, 0, WIDTH, HEIGHT, null); 
g.drawImage(bgInv, xOffset + WIDTH, 0, WIDTH, HEIGHT, null); 
+0

이것은 정확하게 내가 필요로하는 감사입니다! – L3n