2013-05-02 23 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 
    } 
} 

改变状态的功能:

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

有在cocos2d-iPhone “restoreOrignalFrame” 选项可能是你可以找到这个java也一样,设置为“YES” – 2013-05-03 05:37:16

回答

0

好吧,我解决了它。 :) 我已经创建了CCSpriteFrame类型的类变量。

CCSpriteFrame frame_idle; 

在类的构造函数:

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

和案例IDLE我已经更改为:

case IDLE:{ this.sprite.setDisplayFrame(frame_idle); break; }