Cocos2dx 배경화면 자동스크롤



코코스2dx를 사용하여 앱을 개발할때 배경화면이 자동으로 스크롤 되게 만드는 방법입니다.

슈팅게임이나 아케이드 게임개발시에 많이 필요로하는 기능이지요..


구현방법에는 여러가지가 있겠지만 저는 이렇게 사용해봤습니다.


1. 먼저 Cocos Studio에서 배경을 두개 만듭니다. (왼쪽 오른쪽)

   물론 코드상에서 만들어도 상관없겠죠.





2. update 함수에서 배경화면 움직임의 크기를 정해서 포지션을 이동시켜줍니다.

   여기서 Step = 2 의 값이 클수록 배경화면일 빨리 스크롤됩니다.


void MainScene::onEnterTransitionDidFinish()

{

this->scheduleUpdate();

}


void MainScene::update(float dt)

{

int Step = 2;

auto left = (Sprite*)_pRoot->getChildByName("bg_left");

auto right = (Sprite*)_pRoot->getChildByName("bg_right");


left ->setPosition(Vec2(left ->getPosition().x - Step, 0));

right ->setPosition(Vec2(right ->getPosition().x - Step, 0));


if (left ->getPosition().x <= -1280)

left ->setPosition(Vec2(1280, 0));

if (right ->getPosition().x <= -1280)

right ->setPosition(Vec2(1280, 0));

}



3. 배경화면의 위치가 임계영역에 도달하면 다시 초기화 시켜줍니다.


제가 사용한 배경화면 Sprite는 크기가 1280 X 720 이었습니다.

따라서 각자 사용하는 배경화면의 크기에 맞게 1280의 수치를 변경시켜주면 될듯합니다.



아래는 이렇게 구현한 배경화면 자동스크롤 코드 테스트 화면입니다.



그럼 즐거운 개발하세요^^