我的字符类是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; }
.
.
.
答案 0 :(得分:0)
好的,我一个人解决了。 :) 我创建了CCSpriteFrame类型的类变量。
CCSpriteFrame frame_idle;
在类构造函数中:
frame_idle = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("Player.png");
案件IDLE我已改为:
case IDLE:{ this.sprite.setDisplayFrame(frame_idle); break; }