CCAction 클래스 자체는 별의미 없어보입니다.
멤버 변수가
public CCNode target;
멤버 변수가
public CCNode target;
private CCNode originalTarget
private int tag;
이렇게 3개밖에 없네요
타겟노드 와 구분자 tag
그럼 멤버 변수가 머 볼거 없으니 멤버 함수를 확인해 보니.
Action이 한프레임동안 하는 일들을 알수 있었습니다.
바로 아래와 같은데요.
멤버 함수별 상세한 설명은 안에 잘되어 있으니
하나의 프레임동안 호출되는 함수들의 순서를 정리하겟습니다.
바로 이렇습니다. 여기서 유추할수 있는건 이런 액션멤버변수들을 호출하는 무언가가 있다라는것이죠 일단 지금은 그정도로만 알고 있죠 무언가가 액션의 멤버 변수를 호출한다.그것도 체계적으로 말이죠
CCAction은 아래 클래스로 확장 됩니다.
CCFiniteTimeAction
CCRepeatForever and CCSpeed
그럼 이 2가지 놈들과 CCAction의 관계를 볼까요?
CCFiniteTimeAction 과 CCAction의 관계입니다.
CCRepeatForever 과 CCAction의 관계입니다.
CCSpeed과 CCAction의 관계입니다.
CCFiniteTimeAction 는 말그대로 한정된 시간을 가지는 액션입니다.
클래스 설명을 보면
시간을 가지는액션의 기본클래스 입니다.
0seconds 는 바로 CCNode 의 속성을 즉시 변경한다는 말이고 .
35.5 seconds는 CCNode의 속성을 35.5초 동안 변경한다는 말입니다.
CCAction의 멤버 변수외에 float duration이 추가 되었습니다.
물론 이에 대한. set ,get 함수는 추가 되었구요.
하나 눈여겨 볼만 한것은.
멤버 한수로써
이제 남은 것은
CCRepeatForever and CCSpeed 요건데 위에서 보시다 시피 CCIntervelAction이 머하는건지 알수 있다면 좀더 이해가 빠를 것이라 생각됩니다.
그래서 다음 강좌는 CCIntervelAction 에 대해서 다루어 보겟습니다.
private int tag;
이렇게 3개밖에 없네요
타겟노드 와 구분자 tag
그럼 멤버 변수가 머 볼거 없으니 멤버 함수를 확인해 보니.
Action이 한프레임동안 하는 일들을 알수 있었습니다.
바로 아래와 같은데요.
//! called before the action start. It will also set the target.
public void start(CCNode aTarget) {
originalTarget = target = aTarget;
}
//! called after the action has finished. It will set the 'target' to nil.
//! IMPORTANT: You should never call "[action stop]" manually. Instead, use: "[target stopAction:action];"
public void stop() {
// target = null;
}
//! return YES if the action has finished
public boolean isDone() {
return true;
}
//! called every frame with it's delta time. DON'T override unless you know what you are doing.
public abstract void step(float dt);
//! called once per frame. time a value between 0 and 1
//! For example:
//! * 0 means that the action just started
//! * 0.5 means that the action is in the middle
//! * 1 means that the action is over
public abstract void update(float time);
멤버 함수별 상세한 설명은 안에 잘되어 있으니
하나의 프레임동안 호출되는 함수들의 순서를 정리하겟습니다.
바로 이렇습니다. 여기서 유추할수 있는건 이런 액션멤버변수들을 호출하는 무언가가 있다라는것이죠 일단 지금은 그정도로만 알고 있죠 무언가가 액션의 멤버 변수를 호출한다.그것도 체계적으로 말이죠
CCAction은 아래 클래스로 확장 됩니다.
CCFiniteTimeAction
CCRepeatForever and CCSpeed
그럼 이 2가지 놈들과 CCAction의 관계를 볼까요?
CCFiniteTimeAction 과 CCAction의 관계입니다.
CCRepeatForever 과 CCAction의 관계입니다.
CCSpeed과 CCAction의 관계입니다.
출처: http://www.cocos2d-iphone.org/api-ref/0.99.0/annotated.htm
CCFiniteTimeAction 는 말그대로 한정된 시간을 가지는 액션입니다.
클래스 설명을 보면
/** Base class actions that do have a finite time duration.
Possible actions:
- An action with a duration of 0 seconds
- An action with a duration of 35.5 seconds
Infitite time actions are valid
*/
시간을 가지는액션의 기본클래스 입니다.
0seconds 는 바로 CCNode 의 속성을 즉시 변경한다는 말이고 .
35.5 seconds는 CCNode의 속성을 35.5초 동안 변경한다는 말입니다.
CCAction의 멤버 변수외에 float duration이 추가 되었습니다.
물론 이에 대한. set ,get 함수는 추가 되었구요.
하나 눈여겨 볼만 한것은.
멤버 한수로써
public CCFiniteTimeAction reverse() {
ccMacros.CCLOG(LOG_TAG, "Override me");
return null;
}
이 추가 되었다는 것입니다. 그리고 나서 자기를 상속한 클래스보고 오버라이딩 해라고 친절하게 말해 주세요 ㅎㅎㅎ
이 추가 되었다는 것입니다. 그리고 나서 자기를 상속한 클래스보고 오버라이딩 해라고 친절하게 말해 주세요 ㅎㅎㅎ
이제 남은 것은
CCRepeatForever and CCSpeed 요건데 위에서 보시다 시피 CCIntervelAction이 머하는건지 알수 있다면 좀더 이해가 빠를 것이라 생각됩니다.
그래서 다음 강좌는 CCIntervelAction 에 대해서 다루어 보겟습니다.
'안드로이드 cocos2d 강좌 > cocos2d 안드로이드 클래스 심화' 카테고리의 다른 글
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 |
CCEaseBackIn / CCEaseBackInOut / CCEaseBackOut 클래스 분석 (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 |
CCCamera 클래스 분석 (0) | 2011.09.10 |
CCGridSize 클래스 분석 (미친척하고 해보자 cocos2d for androd) (0) | 2011.09.10 |