cocos2dx利用pauseAllRunningActions()暂停并恢复动作

目前遇到的需求如下:让A放技能,游戏暂停,玩家选择一个目标,游戏恢复,A向目标释放技能

在做游戏暂停的时候,用到了pauseAllRunningActions()函数,他的作用是将该Node上所有正在运行的动作暂停(看函数名就知道了)

用法:

1,Node->pauseAllRunningActions();则该函数只对Node本身在运行的动作生效,Node的子节点的动作不会受到影响;

2,该函数的返回值是一个CCSet对象的指针:CCSet* tmpSet = Node->pauseAllRunningActions();得到这个指针以便恢复动作

3,恢复动作:Node->resumeTargets(tmpSet);


需要注意的地方:

如果流程是这样,肯定是没有问题的:暂停-获得Set-恢复Set;但在实际项目中,往往流程是这样的:暂停-获得Set-各种操作-恢复Set。

因为通过CCSet* tmpSet = Node->pauseAllRunningActions();得到的tmpSet已经调用过autoRelease(),所以在“各种操作阶段”如果超出作用域,可能很快他就会被释放,从而出现野指针,只要记得在获得之后retain(),再在适当的时候release()就可以了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值