2013-03-08 3 views
0

저는 코코스 2D에서 플레이어가 네 방향으로 움직이는 타일 맵 기반 게임을하고 있습니다. 플레이어의 움직임에 네 개의 이미지를 사용했습니다 (예 : 왼쪽, 오른쪽, 위, 아래). 내 문제는 내 배경지도가 위치를 변경하거나 다른 위치로 이동할 때 스프라이트가 위치를 변경하지 않는다는 것입니다. 누구든지 백그라운드의 움직임으로 스프라이트를 움직이는 법을 말해 줄 수 있습니까?배경의 움직임으로 스프라이트를 이동하는 방법은 무엇입니까?

+2

무엇을 시도 했습니까? 스프라이트와 배경을 움직이는 코드를 보여줄 수 있습니까? – Fonix

+0

"coco"라는 질문에 태그를 달아주세요. http://stackoverflow.com/questions/tagged/coco – Ven

답변

0

플레이어의 배경과 스프라이트를 모두 포함하려면 CCNode를 사용하십시오. 배경을 이동하는 대신 해당 노드를 이동하십시오.

0

타일 맵 기반 게임을 처리하는 데는 몇 가지 방법이 있으며 둘 다 매우 편리하지 않습니다. 한 가지 방법은 항상 화면의 중앙에 캐릭터를두고 그 밑에 배경을 이동하는 것입니다. 캐릭터가 '오른쪽'으로 움직이면 배경을 왼쪽으로 밀기 만하면됩니다. 이것은 문자가지도 주변을 움직이는 것처럼 보이게합니다. 이 패러다임에서 모든 탐지/충돌을 화면 공간뿐만 아니라 세계의 공간으로 변환해야한다는 것을 기억해야합니다. 모든 것을 변환하지 않으면 충돌/탐지의 '범위'가 화면 크기로 제한됩니다.

두 번째 방법은 카메라를 전세계로 패닝하는 것입니다. 캐릭터를 화면 중앙에 계속 두지 만 실제로는 전 세계를 돌아 다니며 카메라가 따라옵니다. 이것은 당신이 현실 세계를 볼 때 게임 세계를 볼 수 있기 때문에 가장 직관적 인 의미를 갖습니다. 또한 캐릭터와 세계의 위치가 '작동하며'변환 될 필요가 없기 때문에 충돌을 처리하는 것이 훨씬 쉽습니다. 단점은 Cocos2D가 CCCamera를 사용하기 쉽지 않으며 문서가 그 점에서 조금 얇은 것입니다.

특정 경우에는 CCLayer 문제가있는 것 같습니다. 캐릭터가 움직이는 레이어 내부에 있다면 캐릭터는 맵에 비해 상대적으로 같은 위치에있게됩니다 (설명하는대로). 대신,지도 위에 다른 레이어의 캐릭터를 띄우십시오.

0

스크롤링 Parallex를 사용하여 스프라이트를 배경과 동일한 레이어에 추가 할 수 있습니다. 그들은 함께 움직일 것이다.

관련 문제