位置: 编程技术 - 正文
推荐整理分享cocos2dx-3.1.1 有关闭包函数的使用以及mutable关键字的作用(cocos2dx 4.0),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos2d开发了哪些游戏,cocos2d开发了哪些游戏,cocos2dx 4.0,cocos2dx游戏有哪些,cocos2djs,cocos2dx开发了哪些游戏,cocos2dx游戏有哪些,cocos2djs,内容如对您有帮助,希望把文章链接给更多的朋友!
依旧是记录开发中遇到的问题,以及对应的解决方案。
cocos2dx-3.1.1中,使用到了很多c的一些特性,其中有关闭包函数的时候,我也是只知道怎么使用,出了问题真是绞尽脑汁,下面用一个简单的例子描述一下遇到的问题,以及相对应的解决方案。
这个例子很简单,载入两张图片,点击一张再点击另外一张让两张图片消失,其实就有点像连连看消除的时候了。
下面看代码(只贴出一些较为关键的部分)
给层添加一个监听器,因为在闭包函数里面需要使用到vec_s,所以将它放到参数列表[]中,删除的逻辑比较粗糙,请忽略这些细节,我们的重点不在删除逻辑,可以看到有一句vec_s.clear(),这里就是将vec_s中的精灵移除,当编译这段代码时,会报一个错误:passing 'const cocos2d::Vector<cocos2d::Sprite*>' as 'this' argument of 'void cocos2d::Vector<T>::clear() [with T = cocos2d::Sprite*]' discards qualifiers [-fpermissive]
这个错误的意思是const参数调用了非const的方法。
这是因为闭包函数捕获到函数里面的参数是const类型的,没法调用非const函数,这里,我们需要修改一处代码:
在闭包函数的body前添加一个mutable关键字,即可解决这个问题。
写个简单的飞机游戏玩玩 写个简单的飞机游戏玩玩侯亮1概述前些天看了《Android游戏编程之从零开始》一书中一个简单飞机游戏的实现代码,一时手痒,也写了一个练练手。虽然
Cocos2dx3.2 Crazy Tetris 绘制不规则方块 遮罩(ClippingNode的使用) 前面已经思考了可能遇到的消除和面积判定问题,那么接下来的问题就是如何显示这些由于消除可能引出的不规则图形。在这里,我使用了ClippingNode(
Cocos2dx CrazyTetris 双线伪裁剪算面积 对于判断消除的思考(二) 上一篇主要讲了我对裁剪消除算法的思考,这一篇的主题是计算单行覆盖面积,以此来确定是否达到了裁剪条件。就像之前所说的,在该游戏中,基本
标签: cocos2dx 4.0
本文链接地址:https://www.jiuchutong.com/biancheng/371288.html 转载请保留说明!友情链接: 武汉网站建设