Feel free to fix/add documentation to the wiki

Actions: Ease

Ease 액션은 내부의 액션의 기간을 수정하는 특별한 composition액션입니다. Flash에서는 이러한 액션을 Tweening 또는 Easing 액션이라고 합니다.

이 액션을 내부 액션의 속도를 수정하지만 전체 동작 시간을 수정하지는 않습니다. 내부 액션이 5초 동안 수행된다면 전체 시간은 5초 동안 진행될겁니다.

Ease 액션은 동작 시간을 선형적으로 수정합니다.

예를 들면 내부 액션을 가속화하거나 저속화합니다.

이 액션을 3가지 타입으로 구분할 수 있습니다. :

  • In actions: 액션의 처음부분을 가속화
  • Out actions: 액션의 끝 부분을 가속화
  • InOut actions: 처음/끝과 끝에서 가속화

easing 또는 tweening 액션은 다음 페이지를 참조하세요. :

Ease actions

가속은 다음 공식으로 되어 있습니다. :

-(void) update:(ccTime) t
{
   [inner update: powf(t,rate)];
}

변수:

  • EaseIn: 처음 부분 가속
  • EaseOut: 끝 부분 가속
  • EaseInOut: 처음/끝 부분 가속

rate 인자는 느려지는 정도를 지시합니다.

예제:

// 처음 부분 가속
id action = [MoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [EaseIn actionWithAction:action rate:2];
[sprite runAction: ease];
 
// 끝 부분 가속
id action = [MoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [EaseIn actionWithAction:action rate:2];
[sprite runAction: ease];
 
// 처음/끝 부분 가속
id action = [MoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [EaseInOut actionWithAction:action rate:2];
[sprite runAction: ease];

EaseExponential actions

  • EaseExponentialIn
  • EaseExponentialOut
  • EaseExponentialInOut

FIXME

EaseSine actions

  • EaseSineIn
  • EaseSineOut
  • EaseSineInOut

FIXME

EaseElastic actions

이 액션은 탄성 시뮬레이션 기간을 수정합니다. 탄성 액션은 1보다 크고 0보다 작은 time 값을 사용하여, 내부 액션은 특정 값에 의해 영향을 받습니다.

또한 어떤 변수는 한번 이상을 트리거하게 됩니다.(이 함수는 일대일대응이 아닙니다.) 그래서 내부 액션은 이 변수값에 다시 영향을 받게 됩니다. MoveBy, ScaleBy, RotateBy 같은 간단한 액션은 EaseElastic 액션에 적용하는 것이 무방하지만 Sequence 또는 Spawn 액션은 제대로 동작하지 않을 수 있습니다.

v0.8.2 이후로 적용

가능한 탄성 액션:

  • EaseElasticIn
  • EaseElasticOut
  • EaseElasticInOut

예제:

 
// 'period' 액션에서 얼마큼 탄력적인가 하는 것입니다.
// 권고값 : 0.3 부터 0.45
 
// 시작 부분 탄성
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseElasticIn actionWithAction:move period:0.3f];
[sprite runAction: action];
 
// 끝 부분 탄성
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseElasticOut actionWithAction:move period:0.3f];
[sprite runAction: action];
 
// 시작과 끝 부분 탄성
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseElasticInOut actionWithAction:move period:0.3f];
[sprite runAction: action];

EaseBounce actions

EaseBounce 액션은 통통 튀기는 효과를 시뮬레이션 합니다.

어떤 변수는 한번 이상을 트리거하게 됩니다.(이 함수는 일대일대응이 아닙니다.) 그래서 내부 액션은 이 변수값에 다시 영향을 받게 됩니다. MoveBy, ScaleBy, RotateBy 같은 간단한 액션은 EaseBounce 액션에 적용하는 것이 무방하지만 Sequence 또는 Spawn 액션은 v0.8.2 이후로 적용

가능한 바운스 액션:

  • EaseBounceIn
  • EaseBounceOut
  • EaseBounceInOut

예제:

 
// 시작 부분 바운스
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseBounceIn actionWithAction:move];
[sprite runAction: action];
 
// 끝 부분 바운스
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseBounceOut actionWithAction:move];
[sprite runAction: action];
 
// 시작과 끝 부분 바운스
id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [EaseBounceInOut actionWithAction:move];
[sprite runAction: action];

EaseBack actions

어떤 변수는 한번 이상을 트리거하게 됩니다.(이 함수는 일대일대응이 아닙니다.) 그래서 내부 액션은 이 변수값에 다시 영향을 받게 됩니다. MoveBy, ScaleBy, RotateBy 같은 간단한 액션은 EaseBack 액션에 적용하는 것이 무방하지만 Sequence 또는 Spawn 액션은 Some v0.8.2 이후로 적용 Available bounce actions: * EaseBackIn * EaseBackOut * EaseBackInOut Examples: <code objc> Back at the beginning id move = [MoveBy actionWithDuration:3 position:ccp(350,0)]; id action = [EaseBackIn actionWithAction:move]; [sprite runAction: action];

Back at the end id move = [MoveBy actionWithDuration:3 position:ccp(350,0)]; id action = [EaseBackOut actionWithAction:move]; [sprite runAction: action]; Back at the beginning and at the end id move = [MoveBy actionWithDuration:3 position:ccp(350,0)]; id action = [EaseBackInOut actionWithAction:move]; [sprite runAction: action];

</code>

Actions: Speed

Speed action

Speed 액션은 내부 액션의 속도를 높여줍니다.

id move = [MoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [Speed actionWithAction: move speed:1.0f];   // no speed modification
 
// but you can modify the speed later
[action setSpeed: 2.5f]; // speed is 2.5 faster
 
[action setSpeed: 0.5f]; // speed is 0.5 faster (it means 2 times slower)