참고 : http://injakaun.tistory.com/95


0. By, To

기능들을 배우기 전에 먼저 알아야 하는 것이 By와 To에 차이를 아는 것입니다.

간단하게 말하면 By는 상대값, To는 절대값을 나타내는 것입니다.

예를 들어서 어떠한 객체를 이동을 시키려고 합니다. 

이동 시키는 Action은 Move라는 것이 있는데, 입력값으로는 이동시간과 이동위치를 받습니다.

이때 By와 To에 따라서 아래와 같이 이동하게 됩니다.


MoveBy::create(3.0, Point(200, 200));

현재 좌표를 기준으로 (200, 200)만큼 이동합니다. 

즉, 지금 (100, 100)에 있다고 하면 (300, 300)으로 이동합니다.


MoveTo::create(3.0, Point(200, 200));

현재 좌표가 어디이든 상관없이 무조건 (200, 200)으로 이동합니다.

즉, 지금 (100, 100)에 있다고 해도 (200, 200)으로 이동합니다.



1. Position

MoveBy, MoveTo

지정한 시간동안 객체를 움직이는 액션입니다. 움직일 때에는 등속으로 움직입니다.

MoveBy::create(3.0, Point(200, 200));   // 시간, 위치


그럼 위에 액션을 가지고 간단한 예제 소스 코드를 만들어 보겠습니다.

일반적으로 액션을 실행하는 방법은 크게 차이가 없습니다.


Sprite *spr = Sprite::create("Icon.png");

spr->setAnchorPoint(Point(0.5, 0.5));

spr->setPosition(Point(100, 100));

this->addChild(spr);


MoveTo *pAction = MoveTo::create(3.0, Point(200, 200));

spr->runAction(pAction);


이렇게 액션을 만든다음에 액션을 실행시키는 주체에 runAction으로 액션을 실행하면 됩니다.

액션은 Node을 상속받는 객체들(Layer, Sprite, Label 등)에 실행시킬 수 있습니다.


JumpBy, JumpTo

지정된 시간동안 지정한 위치로 이동하면서 점프를 하는 액션입니다. 

점프의 높이와 횟수를 지정할 수 있습니다.

JumpBy::create(3.0f, Point(200, 200), 100, 5);   // 시간, 위치, 높이, 횟수


BezierBy, BezierTo

BezierConfig에 의해서 만들어진 곡선대로 지정된 시간동안 움직이는 액션입니다.

BezierBy *action = BezierBy::create(3.0f, bezier);    // 시간, BezierConfig


베지어곡선 액션의 경우 아래와 같이 BezierConfig를 만들어서 입력해야 합니다.


ccBezierConfig bezier;

bezier.controlPoint_1 = Point(150, 150);  // 첫번째 위치

bezier.controlPoint_2 = Point(250, 50);    // 두번째 위치

bezier.endPosition = Point(350, 0);    // 마지막 위치


Place

객체의 위치를 지정된 위치로 변경하는 액션입니다.

일반적으로 혼자 사용하는 것 보다는 나중에 배울 조합 액션에서 많이 사용되는 액션입니다.

Place::create(Point(200, 200));    // 위치


2. Scale

ScaleBy, ScaleTo

지정된 시간동안 객체를 확대 또는 축소시키는 액션입니다.

ScaleBy::create(3.0f, 2.0);    // 시간, 비율


3. Rotation

RotateBy, RotateTo

지정된 시간동안 지정한 각도만큼 객체를 회전시키는 액션입니다.

By, To가 어떻게 다른지 차이점을 알고 있어야 합니다.

RotateBy *action = RotateBy::create(3.0f, 60);              // 시간, 각도(z축 기준)

RotateBy *action = RotateBy::create(3.0f, 60, 90);        // 시간, 각도(x축), 각도(y축)


4. Visible

Show, Hide

객체를 보여주거나, 안보이게 할 때 사용되는 액션입니다.

setVisible()과 동일한 결과를 나타내는 액션입니다. 역시 혼자 사용되지는 않고 조합 액션에서

많이 사용되는 액션입니다.

Show *action = Show::action();

Hide *action = Hide::action();


Blink

지정된 시간동안 객체를 깜박이게 하는 액션입니다.

Blink::create(3.0f, 4);    // 시간, 횟수


ToggleVisibility

이 액션을 실행할때마다 setVisible()의 값을 반대로 하는 액션입니다.

즉, 객체가 보이고 있을 때 이 액션을 하면 객체가 안보이게 되고, 다시 액션을 실행하면 보이게 됩니다.

ToggleVisibility *action = ToggleVisibility::create();    

// 한번 실행하면 안보이고, 두번 실행하면 보이고...


5. Opacity

FadeIn, FadeOut

페이드인 액션은 객체의 투명도를 0에서 255로 변하게 하는 액션입니다.

즉, 안보이다가 보이게 하는 것입니다.

반대로 페이드아웃 액션은 객체의 투명도를 255에서 0으로 변하게 하는 액션입니다.

FadeIn *action = FadeIn::create(3.0f);    // 시간

FadeOut *action = FadeIn::create(3.0f);    // 시간


FadeTo

이 액션은 객체의 투명도를 지정한 투명도로 변경해 주는 액션입니다.

FadeTo *action = FadeTo::create(3.0f, 128);    // 시간, 투명도(0~255)


6. Flip

FlipX, FlipY

이 액션은 객체를 반전시키는 액션입니다.

FlipX *action = FlipX::create(true);


7. RemoveSelf

RemoveSelf

이 액션은 액션을 실행한 객체를 제거하는 액션입니다.

RemoveSelf *action = RemoveSelf::create(false);    // cleanup 여부, 생략 가능


8. Color

TintBy, TintTo

이 액션은 지정한 RGB의 값으로 색상을 변경하는 액션입니다.

TintTo *action = TintTo::create(3.0f, 0, 0, 255);    // 시간, R, G, B


더 많은 정보를 원하시면 맨 위에 있는 블로그를 참조 해주세요~

+ Recent posts