미션. 행성들 배치하기

목표


우주선이 탐사할 행성들을 추가해야 합니다.

우주를 탐사하며 다른 행성들의 특산 자원들을 수집할 거예요.

그래서 우주 배경의 곳곳에 행성들을 배치해 줍니다.


또 우주배경 바깥으로 빠져나가지 못하는 기능도 추가합니다.

(너무 멀리가면 위험하다! 이런 이유에요. ㅎㅎ)





힌트

배경에 행성 고정 시키기


전체 맵은 이런식으로 표현이 될 꺼에요.




오브젝트를 배경의 특정 위치에 고정시키기 위해서는 '상대좌표'를 이용합니다.


엔트리에서는 화면의 가운데 위치인 x: 0, y: 0을 기준으로 하는 좌표를 '절대좌표'라고 합니다.

그런데 우리는 우주선이 우주 배경을 탐사할 수 있게 하기위해 배경을 움직이죠.

그럼 우주 배경의 어떤 위치에 있는 행성들도 우주를 따라서 똑같이 움직여야 항상 같은 위치에 있는 것처럼 보일거에요.

(지구도 우주 배경과 함께 움직이도록 코딩했었죠?)


그래서 모든 행성들의 위치를 우주 배경의 중심점(x: 0, y: 0)을 기준으로 배치시킨 다음, 우주 배경을 따라서 움직이도록 코딩해 주어야 합니다.


작품 안의 '태양계 - 화성' 오브젝트는 x: -400, y: 500 위치에 있습니다.

우주 배경이 움직여도 우주 배경의 가운데 점을 기준으로 x 방향으로 -400, y 방향으로 500 위치에 있어야 합니다.




우주의 좌표값은 로켓이 움직이면 바뀌죠?

그래서 위와 같이 해주면, 우주 배경의 가운데 점을 기준으로 항상 같은 위치에 붙어서 따라다니게 됩니다.





우주 배경 바깥으로 빠져나가지 못하게 하기


우주선이 너무 멀리 가면 우주 배경이 끝나면서 하얀색 배경이 나옵니다.

우주의 끝은 하얀 공간인가요?

바라지 않는 모양이기에 우주 배경의 끝까지 가면 더이상 갈 수 없도록 해 주고 싶습니다.




우주 배경이 움직이는 코드에 위의 빨간 박스안의 코드를 더해줍니다.

숫자들은 직접 우주 배경을 움직여가며 찾은 숫자들입니다. (우주 배경의 크기를 먼저 정한 후에 끝부분의 좌표를 찾아야겠죠?)

우주 배경이 반복문 안에서 계속 움직이는데 한 번 움직일 때마다 배경의 끝인지 검사하고, 만약 끝까지 갔다면 끝부분 좌표로 되돌아오도록 만드는 코드입니다. 

벽막힘 기능 연습할 때 이해 했죠?






댓글

로그인 후 댓글을 남길 수 있습니다.