假设我在游戏中有一个角色,它的类就是这样。
@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任何人都可以给我一个更好的方法来管理一个角色的动画吗?随着动画的增加,这完全是灾难。
答案 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个不同的对象......
希望这会有所帮助。 :)