0

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


@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后,站立动画可见,运行动画停止,但还有一帧运行动画!(现在您可以看到“站立精灵”和“正在运行的动画帧之一”。)

如何使运行动画不可见?

Ps 谁能给我一个更好的方法来管理一个角色的动画?随着动画的添加,这完全是一场灾难。

4

2 回答 2

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];
}
于 2012-05-14T09:00:44.273 回答
0

使用带参数的方法restoreOriginalFrame并传递它yes

我不知道您要调用哪种方法来创建CCAnimate对象...

像这样:

[CCAnimate actionWithAnimation:animation restoreOriginalFrame:YES]];

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

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

希望这可以帮助。:)

于 2012-05-14T09:04:17.647 回答