首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式更改CCNode的动画( CCB文件)?

如何以编程方式更改CCNode的动画( CCB文件)?
EN

Stack Overflow用户
提问于 2014-12-29 08:13:01
回答 1查看 382关注 0票数 2

我正在尝试制作一个Spritebuilder iPhone游戏,我的主要角色_player是一个CCNode,它的子角色是一个CCBFile,它保存角色的空闲动画。

我想将此_ player的CCBFile更改为另一个名为ForwardDash.ccbi的CCBFile,当播放器触摸屏幕时,它包含‘攻击’动画。

这就是我想要的:

代码语言:javascript
复制
 //_player is a CCNode, its first child is the CCBFile with the idle animation.
 //animar is a pointer to the CCBFile with the ForwardDash animation

 CCSprite *wat = _player.children[0];
           CCNode *animar = [CCBReader load:@"ForwardDash"];
           [wat setSpriteFrame: (CCSpriteFrame*)animar];

它失败,并给出了错误:‘线程1:信号SIGABRT’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 00:44:51

setSpriteFrame不是您正在寻找的方法。如果您希望保持当前的CCB设置,您应该能够通过执行以下操作来完成所需的任务:

代码语言:javascript
复制
CCSprite *wat = _player.children[0];
[wat removeFromParent];
CCNode *animar = [CCBReader load:@"ForwardDash"];
[_player addChild:animar];

虽然这样做有效,但我建议您尝试利用SpriteBuilder中不同的动画时间线。您可以向CCB文件添加新的时间线,然后以编程方式更改动画,而无需删除和添加新节点。您可以阅读更多关于使用时间线这里的内容。一旦设置好,您就可以使用以下内容启动一个新的动画:

代码语言:javascript
复制
CCSprite *wat = _player.children[0];
CCAnimationManager* animationManager = wat.animationManager;
[animationManager runAnimationsForSequenceNamed:@"ForwardDash"];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27685498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档