본문 바로가기

Cocos2d-x v3.17/입문하기

[Cocos2d-x 입문하기] Sequence 이해하기

반응형

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>

 


반응형