본문 바로가기

IT 번역/Cocos2d-x 메뉴얼[manual] 번역

액션 | Actions

씬[Scene]을 생성하고, 스프라이트[Sprite] 객체를 화면에 추가하는 것은 해야할 일 중에 극히 일부분일 뿐입니다. 게임에 게임다워지려면, 뭔가가 움직여야죠! 액션[Action] 객체들은 모든 게임에 구현된 부분입니다. 액션[Action]은 노드[Node] 객체들을 시간의 흐름에 따라 변화할 수 있도록 해줍니다. 스프라이트[Sprite]를 어떤 지점에서 다른 곳으로 움직이고 싶으세요? 그리고 그렇게 지정한 위치에 도달하고 나면 콜백[Callback]을 사용해서 신호를 받고 싶으신가요? 걱정하지마세요! 액션[Action]을 수행할 노드[Node]를 지정해서, 액션 목록(액션 항목의 시퀀스[Sequenct of Action items])을 만들 수도 있습니다. 위치나 회전각도, 크기 등등의 노드[Node] 속성을 바꿀 수 있습니다. 액션[Action]의 예를 들어보죠: MoveBy, Rotate, Scale. 모든 게임은 액션[Action]을 사용합니다.

이번 글에 대한 예제 코드<링크>를 한번 보시면, 액션[Action]이 동작하는 것을 보실 수 있어요:

그리고 5초 후에 스프라이트[Sprite]가 지정한 위치로 움직입니다.

액션[Action] 객체는 만들기 쉽습니다.

auto mySprite = Sprite::create("Blue_Front1.png");

// 2초동안 스프라이트[Sprite]를 오른쪽으로 50픽셀, 위로 10픽셀 움직입니다.
// Move a sprite 50 pixels to the right, and 10 pixels to the top over 2 seconds.
auto moveBy = MoveBy::create(2, Vec2(50,10));
mySprite->runAction(moveBy);

// 스프라이트[Sprite]를 지정한 위치에 2초 안에 움직입니다.
// 이 경우에는 절대 좌표를 지정한 것이라 이해하시면 되겠네요.
// Move a sprite to a specific location over 2 seconds.
auto moveTo = MoveTo::create(2, Vec2(50,10));
mySprite->runAction(moveTo);