2013-05-02 6 views
1

CCSprite 변수 인 문자 클래스를 가지고 있습니다. 캐릭터가 점으로 이동하고 버튼이나 점프를 터치 한 후 애니메이션을 걷는 애니메이션은 모두 정상적으로 작동하지만 애니메이션 후 CCSprite에는 잘못된 프레임 (워킹 프레임 중 하나)이 있습니다. 내 업데이트 기능의 끝에서 나는이 코드를 작성,하지만 그냥 냉동, 문자 캔트 점프처럼 이상을 걸어, 실행 행위의 수는 항상 1 :CCSprite의 프레임 설정 방법

if(this.sprite.numberOfRunningActions() == 0){ 
    if(this.state != CharacterState.IDLE){ 
    this.changeState(CharacterState.IDLE); // without this row it works still fine 
    } 
} 

changeState 기능 :

public void changeState(CharacterState state){ 
    sprite.stopAllActions(); 
    this.state = state; 
    switch(state){ 
    case IDLE:{ this.sprite = CCSprite.sprite(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("Player.png")); break;} 
    case WALK_LEFT:{ this.sprite.runAction(wAction); break; } 
    . 
    . 
    . 
+0

당신이 찾을 수있을 수 있습니다 자바도, "예"로 설정 –

답변

0

좋아, 나는 그것을 혼자서 해결했다. :) CCSpriteFrame 유형의 클래스 변수를 만들었습니다. 클래스 생성자에서

CCSpriteFrame frame_idle; 

는 :

frame_idle = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("Player.png"); 

및 사례 IDLE 나는로 변경되었습니다

"restoreOrignalFrame"적인 Cocos2D - 아이폰의 옵션이 있습니다
case IDLE:{ this.sprite.setDisplayFrame(frame_idle); break; } 
관련 문제