Sequence
스크린상에서 스프라이트를 이동시키는것이 게임의 모든것은 아닙니다.
최소한 어떤식으로 많은 Action을 실행할지를 고민해봐야 합니다.Cocos2d-x는 Sequence를 이용해서 이러한 고민을 해결합니다.
Sequence는 이름과 똑같은 기능을 합니다.많은 Action들이 특정한 순서대로 배열되는 것입니다.
물론 반대방향으로 Sequence를 실행하는것도 가능합니다.
다행이도 이러한 기능을 Cocos2d-x는 지원합니다.
자 우린 이제 Sequence를 이용하여 스트라이트 이동을 해봅시다.
Sequence생성:
C++
auto mySprite = Node::create();
// move to point 50,10 over 2
seconds
auto moveTo1 = MoveTo::create(2, Vec2(50,10));
// move from current position
by 100,10 over 2 seconds
auto moveBy1 = MoveBy::create(2, Vec2(100,10));
// move to point 150,10 over 2
seconds
auto moveTo2 = MoveTo::create(2, Vec2(150,10));
// create a delay
auto delay =
DelayTime::create(1);
mySprite->runAction(Sequence::create(moveTo1,
delay, moveBy1, delay.clone(),
moveTo2, nullptr));
위의 예는 Action들을 순서대로 실행해줍니다.
하지만 많은 Action을 동시에 실행시키시고 싶다면 엔진의 Spawn을 이용하면 됩니다.
Spawn은 많은 Action을 동시에 실행시켜줍니다.
여러 Action이 수행되는 시간이 다를때는 동시에 종료되지 않습니다.
C++
auto myNode = Node::create();
auto moveTo1 = MoveTo::create(2, Vec2(50,10));
auto moveBy1 = MoveBy::create(2, Vec2(100,10));
auto moveTo2 = MoveTo::create(2, Vec2(150,10));
myNode->runAction(Spawn::create(moveTo1, moveBy1, moveTo2, nullptr));
왜 동시에 여러 Action을 수행해야 할까요?
당연히 이유가 있습니다.
만약의 당신의 게임캐릭터가 전기에 감전됬을때를 예로 들수있습니다.(ex:찌릿찌릿하면서 이동해야 할때 혹은 살짝 좌우회전하면서 이동할때)
출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/basic_concepts/sequences.html>
'Cocos2d-x v3.17 > 입문하기' 카테고리의 다른 글
[Cocos2d-x 입문하기]Log 출력 (0) | 2018.08.11 |
---|---|
[Cocos2d-x 입문하기] 노드 관계 이해하기 (0) | 2018.08.11 |
[Cocos2d-x 입문하기]Action 이해하기 (0) | 2018.08.11 |
[Cocos2d-x 입문하기]Sprite 이해하기 (0) | 2018.08.11 |
[Cocos2d-x 입문하기]Scene을 이해하기 (0) | 2018.08.11 |