본문 바로가기

Cocos2d-x v3.17/고급 기능

[Cocos2d-x 고급기능]ParallaxNode 스크롤링

반응형

스크롤링 

스크롤링은 여러 배경을 다른 속도로 이동시키는 것입니다.

이러한 방법은 3차원운동효과를 줄수있습니다.

예를들면 슈퍼마리오 게임중에서 캐릭터의 움직이면 지면과 배경하늘도 이동합니다.

이것이 스크롤링입니다.

Cocos2d-x는 ParallaxNode개체를 사용하여 스크롤링을 구현합니다. 

   

시퀀스를 사용하여 이동을 컨트롤할수도 있고 마우스,터치,가속도센서,키보드등의 이벤트로도 컨트롤할수 있습니다.

ParallaxNode개체는 보통의 객체보다 약간 복잡합니다.

왜냐면 각기 다른 이동속도를 구현하려면 자식노드가 여러 개 필요하기 때문입니다.

이것은 Menu처럼 하나의 그릇같습니다.

몸체는 움직이지 않지만 움직이는것은 추가된 여러 자식노드뿐이기 떄문입니다. 


ParallaxNode의 생성: 

C++ 

// create ParallaxNode

auto paraNode = ParallaxNode::create(); 


여러 객체를 추가 


C++ 

// create ParallaxNode

auto paraNode = ParallaxNode::create(); 

// background image is moved at a ratio of 0.4x, 0.5y

paraNode->addChild(background, -1, Vec2(0.4f,0.5f), Vec2::ZERO); 

// tiles are moved at a ratio of 2.2x, 1.0y

paraNode->addChild(middle_layer, 1, Vec2(2.2f,1.0f), Vec2(0,-200) ); 

// top image is moved at a ratio of 3.0x, 2.5y

paraNode->addChild(top layer, 2, Vec2(3.0f,2.5f), Vec2(200,800) ); 


주의해야 할점은 추가된 객체 마다 유일한 z-order순서를 부여하였습니다.

그래야 어딜 덮을지 판단할수 있으니까요!

그외에 또 주의할점은 addChild()가 여기서 2개의 Vec2를 매개변수로 사용하는데 첫번째 매개변수는 자식노드의 이동속도가 부모노드의 이동속도의 비율을 결정하는것이고 두번째 Vec2매개변수는 부모노드의 상대적인 ParallaxNode의 오프셋을 입니다. 


문서에선 스크롤링을 보여주기 힘듭니다.본문서의 코드예시를 보십시오. 

   

출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/other_node_types/parallax.html

   

 


반응형