如何设置CCSprite的框架

时间:2013-05-02 18:25:49

标签: java android cocos2d-iphone cocos2d-android

我的字符类是CCSprite变量。触摸按钮或跳跃后,角色移动到点和动画行走动画,一切正常,但动画后CCSprite有坏帧(步行帧之一)。在我的更新函数结束时,我编写了这段代码,但之后它就像冻结,角色跳不动或走路更多,运行动作的数量总是1:

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; }
     .
     .
     .

1 个答案:

答案 0 :(得分:0)

好的,我一个人解决了。 :) 我创建了CCSpriteFrame类型的类变量。

CCSpriteFrame frame_idle;

在类构造函数中:

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

案件IDLE我已改为:

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