스크롤링
스크롤링은 여러 배경을 다른 속도로 이동시키는 것입니다.
이러한 방법은 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>
'Cocos2d-x v3.17 > 고급 기능' 카테고리의 다른 글
[Cocos2d-x 고급기능]키보드 이벤트,가속도계 이벤트 (0) | 2018.08.11 |
---|---|
[Cocos2d-x 고급기능]이벤트 발생 매커니즘 우선순위 및 터치이벤트 (0) | 2018.08.11 |
[Cocos2d-x 고급기능]이벤트 발생 매커니즘 소개 및 Listener (0) | 2018.08.11 |
[Cocos2d-x 고급기능]ParticleSystem (0) | 2018.08.11 |
[Cocos2d-x 고급기능]특수한 노드객체 소개 및 TileMap (0) | 2018.08.11 |