Cocos2d-x中的那些坑--Action stop后无法恢复的一种解决方法

Cocos2d-x中的Action系列的类是非常常用到的功能,使用这些Action,可以构建游戏中绝大部分的内容,但是使用了Action一段时间后,发现Action只能在被Node调用了stopAction停止掉之后不能恢复,Node没有提供resumeAction之类函数来恢复被停止的Action的,查看了下源码才知道stop其实就是把Action直接从,而在编写游戏的时候,有时候确实是是有想对被停止掉的Action进行恢复,这时候就有些麻烦了,那么怎么实现让Action既可以停止,又可以继续呢?

经过仔细查看源码,可以知道所有的Action都是又一个叫ActionManager的对象进行统一管理的,在游戏运行的时候,如果没有自己创建任何ActionManager的话,Director的单例对象自己在初始化的时候会创建一个ActionManager,而它就是用来管理游戏中的所有的Action对象的默认对象,Director的单例会注册一个每帧调用的函数,该函数内部其实就是调用了这个ActionManager的update函数,而这个update函数就会对所有其管理的Action进行更新,Director单例的创建的默认的ActionManager管理的Action对象其实就是游戏中所有的Action对象,查看源码可以发现,所有的Action对象其实都是交给这个ActionManager来管理的。

从这里可以想到的一个实现可以被停止后恢复的Action的方法就是自己创建一个ActionManager,由自己来决定什么时候调用这个自建的ActionManager的update函数,那么这样就可以实现对Action的控制了,这里要注意的是调用ActionManager的update函数式需要传入一个dt(距离上一帧所经过的时间) 来用于计算Action的更新。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值