位置: 编程技术 - 正文

cocos2dx菜单重叠按钮实现按层优先选择及透明过滤(cocos creator 优化 drawcall 合并)

编辑:rootadmin

推荐整理分享cocos2dx菜单重叠按钮实现按层优先选择及透明过滤(cocos creator 优化 drawcall 合并),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos creator 优化 drawcall 合并,cocos2d-x教程,cocos creator 布局,cocos2d schedule,cocos拼接,cocos creator 布局,cocos2dx scrollview,cocos2dx scrollview,内容如对您有帮助,希望把文章链接给更多的朋友!

众所周知,在cocos2d-x中,通过CCMenu(抱歉,笔者至今任然在用2.2.2的版本)创建的菜单,如果遇到数个按钮有重叠,当用户点击重叠区域(包括PNG图标中的透明部分)时,引擎默认是按照按钮的添加顺序来检索确定当前用户点击的按钮的,即在该位置第一个被添加到菜单中的的按钮为被点击按钮,即使用户点击到的是空白部分。</span>

cocos2dx菜单重叠按钮实现按层优先选择及透明过滤(cocos creator 优化 drawcall 合并)

相信很多开发人员均对此很苦恼,笔者最近正在开发一款策略类的手机游戏,游戏界面中的建筑物的位置、层级是通过配置文件的形式进行配置的,当加载进入游戏时,读取配置文件,进而绘制界面。界面中的每一个建筑实际上都是一个按钮,当笔者测试时,发现经常会产生想点击按钮A,却点击到了按钮B,原因就是按钮B比按钮A先添加到了保存按钮列表的CCArray数组中,且绘制按钮B图标的空白部分遮挡住了按钮A;而且,很多时候,点击按钮的空白部分也会触发点击事件,个中原因,相信大家都知道,就不废话了。

那么,能不能通过我们自己定义的优先级来有限出发指定按钮的点击事件呢?能不能过滤掉按钮中的透明部分呢?答案是肯定的,为此,笔者百度了很多相关案例,却都语焉不详,而且写的代码不带注释不说,还运行起来。没办法,只好自己去研究了一下CCMenu的源代码,并在其基础上派生出以下绘制菜单的类----LekoMenu。

以下的代码是LekoMenu类的声明及定义:

LekoMenu.h:LekoMenu.cpp: 以上代码为LekoMenu类的全部实现代码,笔者菜单中按钮使用的是CCMenuItemSprite对象,至于其他类型的按钮,各位读者可以自己试着实现,需要说明的是,由于无法重置CCMenu的create系列函数(函数有点多,笔者没有深入研究),在使用LekoMenu类的时候需要按照如下方式: 上面代码中的buildArr是保存建筑物按钮列表的数组,每创建一个按钮时,需要先调用setZorder(int)来设置其Z轴坐标(触摸优先级)哦,设置的&#;越大,则触摸优先级越高。

cocos2dx中滚动界面和小滚动条同步的实现 在游戏中,经常会遇到滚动界面,或者滚动列表,在滚动时,为了给用户一个更好的体验,我们会想到在滚动界面的旁边加上一个小小的滚动条,让这

cocos2dx中Action的Tag设置问题 cocos2dx中Action的Tag要在runAction之后再设置,否则不管用。例如:action:setTag(1)sprite:runAction(action)这个时候使用sprite:getActionByTag(1)获取到的为nil而如果这样

cocos2dx的坑 ---- autorelease不release CCNode创建后调用autorelease,就算之后你再也不需要这个节点,该节点也有可能不会自动释放,这个问题用memleak是查看不到的触发情况:1.创建了一个CCNode或

标签: cocos creator 优化 drawcall 合并

本文链接地址:https://www.jiuchutong.com/biancheng/368962.html 转载请保留说明!

上一篇:Cocos2dx的截屏与遮罩(cocos2d schedule)

下一篇:cocos2dx中滚动界面和小滚动条同步的实现(cocos2d动画)

  • 增值税为10%的有哪些
  • 境外培训费计入关税完税价格
  • 非企业员工可以报销差旅费吗
  • 财政拨款结余明细科目编码
  • 增值税发票四舍五入
  • 财务费用属于什么科目借贷方向
  • 银行借款的补偿金是什么
  • 不相关企业之间的关系
  • 购买财务软件账务处理规定
  • 单位员工去外地上班
  • 影视发行收入该如何做税收处理?
  • 出售固定资产取得的收入
  • 同一控制下企业合并会产生商誉吗
  • 营改增后小规模ktv怎么纳税
  • 资管产品增值税征收管理规定
  • 税前可以扣除的管理费用计算公式
  • 以前年度城建税减免可以计去营业外收入嘛
  • 收到专项拨款属于什么科目
  • 个税申报已经扣了怎么办
  • 财政拨款收入的明细科目
  • 主合同主体变更,从合同怎么处理
  • 公司人格否认制度构成要件
  • linux系统查询mac地址命令
  • 个人多交社保划不划算
  • 出版社购买版权是什么
  • 怎么确认旧城改造完成
  • 禁止扣除项目有什么
  • 特许权使用费属于无形资产吗
  • php随机ua
  • 资产减值损失影响当期利润吗
  • php 无限级分类
  • php正则函数内容匹配
  • php 通信
  • 贝尔纳贝
  • yii框架连接数据库
  • transformer add norm
  • js文件合并工具
  • vmstat命令 监视系统资源状态
  • 对公账户怎么打印
  • 研发失败的费用允许加计扣除吗
  • 上年所得税费用借方有余额,怎么调整
  • mongodb常见问题
  • 研发企业税率是多少
  • 科目余额表科目
  • 金税四期可以查到闭环开票信息吗
  • 补发以前年度工资怎么做账
  • 含税销售收入会计分录
  • 摊余成本有什么用
  • 取得股票期权的个人所得税问题
  • 计提五险一金如何做分录
  • 购销合同上没有金额,怎么写比较好
  • 工业用电交税怎么算
  • 印花税为什么不用计提
  • 资产负债表日后非调整事项应当在附注中披露
  • 上一年度企业所得税汇算清缴会计分录
  • 营改增后不动产发票怎么开
  • 个人购买办公用品 可以证明是单位吗
  • 残保金零申报必须大于0
  • 非营利医疗机构是什么单位
  • sql server查询指定内容
  • MySQL 5.7.18 release版安装指南(含有bin文件版本)
  • win8 系统设置
  • 如何关闭safari
  • windows升级后c盘满了
  • 手把手教你安装使用国家反诈中心
  • win10系统永久激活软件
  • win7任务栏还原到下面快捷键
  • win10升级win1
  • js鼠标移入事件
  • unity入门教学
  • 沉浸式状态栏xposed模块
  • python读写segy数据
  • 向境外付款需要代扣代缴所得税吗
  • 广东电子税务局手机版
  • 农村报账员的基本职责
  • 如何查询车辆购置税
  • 监察室主任岗位职责
  • 辽宁房产税征收标准
  • 地税是什么时候开始征收耕地的呢
  • 海淀九所税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设