加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 19:21:29 所属栏目:百科 来源:网络整理
导读:目前遇到的需求如下:让A放技能,游戏暂停,玩家选择一个目标,游戏恢复,A向目标释放技能 在做游戏暂停的时候,用到了pauseAllRunningActions()函数,他的作用是将该Node上所有正在运行的动作暂停(看函数名就知道了) 用法: 1,Node-pauseAllRunningActio

目前遇到的需求如下:让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()就可以了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读