从图层中删除动画精灵帧?

时间:2012-05-14 06:50:38

标签: iphone cocos2d-iphone

假设我在游戏中有一个角色,它的类就是这样。


@interface Player
{
  CCSprite* stand;
  CCAnimation* run;
}

-(void) playRunAction
{
  // Create CCAnimate* object from CCAnimation object (run)

  [self runAction:runAniate];
}

-(void) playStandAction
{
  stand.visible = YES;
  [self stopAllActions];
}

玩家有能力站立或跑步。

但有一个问题是,在调用了playStandAction之后,立场动画是可见的并且运行的动画停止了,但仍有一帧正在运行的动画! (现在你看到'站点精灵'和'一个正在运行的动画帧'。)

如何让运行的动画不可见?

P.s任何人都可以给我一个更好的方法来管理一个角色的动画吗?随着动画的增加,这完全是灾难。

2 个答案:

答案 0 :(得分:0)

-(void) playStandAction
{
//Make the animation object.visible = NO; here 
  stand.visible = YES;
  [self stopAllActions];
}

并在

-(void) playRunAction
{
  // Create CCAnimate* object from CCAnimation object (run)
  //Make the animation object.visible = YES; here
  stand.visible = NO;
  [self runAction:runAniate];
}

答案 1 :(得分:0)

使用参数restoreOriginalFrame的方法并将其传递给yes

我不知道您要求创建CCAnimate对象的方法...

像这样:

[CCAnimate actionWithAnimation:animation restoreOriginalFrame:YES]];

不要在图层上调用runAction。我希望你在精灵本身上运行动作......

您无需隐藏和显示2个不同的对象......

希望这会有所帮助。 :)