어떤 변수는 한번 이상을 트리거하게 됩니다.(이 함수는 일대일대응이 아닙니다.)
그래서 내부 액션은 이 변수값에 다시 영향을 받게 됩니다. CCMoveBy, CCScaleBy, CCRotateBy 같은 간단한 액션은 EaseBack 액션에 적용하는 것이 무방하지만 CCSequence 또는 CCSpawn 액션은 예기치 못한 결과를 얻을 수 있습니다.
<출처 :http://www.cocos2d-iphone.org/wiki/doku.php/ko:prog_guide:actions_ease>
==> 음... 설명이 조금 애한데요
원활한 설명을 위해서 클래스 관계도 를 먼저 보겟습니다
2. 클래스 관계도
==> 이제 클래스 설명을 다시 보겟습니다. 애매한 단어가
"어떤 변수는 한번 이상을 트리거하게 됩니다" 이라는 말인데 위에 그림에 보면 이해가 좀더
잘 될것입니다 (여기서 변수라함은 시간변수입니다. update() 에 들어가는 시간값입니다.)
3. 추가된 멤버변수/함수
==> 없습니다. 라고 단호라게 말할까 했지만. 클래스 멤버 변수가 없다는것뿐이지
EaseAction의 핵심 함수 update(오버라이드됨)에 중요한 지역변수가 있습니다.
이는 EaseAction의 특성을 구별지을수 있는 핵심 부분이기에 각 클래스별
오버라이딩된 update(float t)를 살펴보겟습니다.
CCEaseBackIn 클래스
@Override
public void update(float t) {
float overshoot = 1.70158f;
other.update(t * t * ((overshoot + 1) * t - overshoot));
}
CCEaseBackInOut
@Override
public void update(float t) {
float overshoot = 1.70158f * 1.525f;
t = t * 2;
if (t < 1) {
other.update((t * t * ((overshoot + 1) * t - overshoot)) / 2);
} else {
t = t - 2;
other.update((t * t * ((overshoot + 1) * t + overshoot)) / 2 + 1);
}
}
CCEaseBackOut
@Override
public void update(float t) {
float overshoot = 1.70158f;
t = t - 1;
other.update(t * t * ((overshoot + 1) * t + overshoot) + 1);
}
==>클래스 관계도의 특성표는 위에 오버라이딩된 함수의 공식에 따른것입니다.
==> 바로 여기에서 알수 있듯이 EaseAction을 오버라이딩하고 여기처럼 update() 부분을
오버라이딩해서 쓴다면 사용자별 EaseAction을 만들수 있을것 입니다.
(수학책을 방정식 공석을 찾아 한번 해보세요 ㅎㅎㅎ 나중에 저도 도전해볼려고 합니다)
==> 오버라이딩된 함수 내부를 상세하게 설명할까 고민했지만 이건 별의미 없는것 같아서
패스 합니다.
4.사용법및 적용가능한곳.
public static CCEaseBackIn action(CCIntervalAction action) {
return new CCEaseBackIn(action);
}
public static CCEaseBackInOut action(CCIntervalAction action) {
return new CCEaseBackInOut(action);
} public static CCEaseBackOut action(CCIntervalAction action) {return new CCEaseBackOut(action);
}
==> 이처럼 동일합니다.
==> CCNode의 속성을 변경시키는 액션은 어떤것이든지 적용이 가능합니다만.
CCSequence 또는 CCSpawn 액션은 자신이 원했던 결과물을 얻을수 없을지도 모릅니다.
'안드로이드 cocos2d 강좌 > cocos2d 안드로이드 클래스 심화' 카테고리의 다른 글
CCEaseSineIn / CCEaseSineInOut / CCEaseSineOut 클래스 분석 (cocos2d for android) (0) | 2011.09.15 |
---|---|
CCEaseRateAction 와 상속 클래스 분석 (cocos2d for android) (0) | 2011.09.15 |
CCEaseExponentialIn / CCEaseExponentialInOut / CCEaseExponentialOut 클래스 분석 (cocos2d for android) (0) | 2011.09.15 |
CCEaseElastic 와 상속 클래스 분석 (cocos2d for android) (0) | 2011.09.15 |
CCEaseBounce 와 상속 클래스 분석 (cocos2d for android) (0) | 2011.09.15 |
CCEaseAction (cocos2d for android) (0) | 2011.09.14 |
CCCameraAction 와 CCOrbitCamera (cocos2d for android) (0) | 2011.09.14 |
CCIntervelAction의 상속 클래스들 분석. (0) | 2011.09.14 |
CCIntervelAction과 CCInstantAction (cocos2d for android) (0) | 2011.09.14 |
CCAction 와 CCFiniteTimeAction (cocos2d for android) (0) | 2011.09.14 |