位置: 编程技术 - 正文

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动画)

  • 管理费用不计入成本吗?
  • 增值税的附加税比例
  • 什么是财务报表审计
  • 存货的初始计量应以取得存货的实际成本
  • 房屋租赁合同印花税的税率
  • 经营公租房的租金收入交房产税
  • 个体工商户不经营会自动注销吗
  • 设备款支付比例
  • 水资源税改革试点实施情况
  • 百分百控股股东叫什么
  • 认缴制下实收资本如何缴纳印花税
  • 国税一个月没报税罚款多少
  • 补交社保后的个税怎么交
  • 装卸费可以抵扣销项税额吗
  • 交叉持股的合并财务报表
  • 无票收入负数怎么报增值税
  • 跨年度的费用发票可以入账吗
  • ’sass_binary_site‘ is not a valid npm option问题的产生原因及解决办法
  • lsass.exe是什么进程
  • 运行网络操作系统的设备
  • 驾校收入与成本的关系
  • 电脑的时间不准了怎么调
  • 代垫费用的进项怎么抵扣
  • 汽车空调不制冷的原因有六种
  • 企业并购的基本方法有
  • nw.exe是什么进程
  • 电脑开机显示屏显示无信号黑屏怎么办
  • 前端项目部署到nginx
  • ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
  • php 格式化字符串
  • 资产为什么等于成本
  • echarts简介
  • 虚拟机安装win11提示无法运行
  • spring的aoc和aop
  • 教育咨询公司能开培训费发票吗
  • php注册系统
  • 成本核算的意义是什么
  • 应交税费在借方怎么调平
  • 盘盈固定资产如何处理
  • 太阳能发电的开发条件
  • 现金流量表的内部结构怎么算
  • 城镇土地使用税暂行条例
  • 递延所得税如何理解
  • 域名 续费
  • 房地产开发企业与转让房地产有关的税金
  • 关联公司之间的借款
  • 生产性生物资产折旧计入什么科目
  • 企业股东的出资方式
  • 总账建账要建全部科目吗
  • 期末结账账务处理
  • win2008r2密码忘了
  • win8怎么设置自动开机
  • switcher.exe - switcher是什么进程
  • win8.1内存占用过高
  • win8 桌面图标
  • w10运行命令在哪
  • Mac系统中文件的唯一id
  • pcards
  • win7系统无法更改账户名称
  • linux使用mv命令,结果文件不见了
  • js类继承的几种方式
  • jquery自定义组件
  • eevee引擎
  • python3安装pygame
  • es5 教程
  • Linux 中的通配符详解及实例
  • 深入理解android内核
  • python的idle打不开解决办法
  • shell脚本 -ne 0
  • javascript data
  • 手机端apk反编译工具_android反编译工具
  • 孙其功陪你学之——unity3d进程暂停
  • unity-x
  • 国家税务总局官网电子税务局
  • 美容行业增值税率是多少
  • 北京公积金缴纳最低基数
  • 四川医保网上怎么缴费支付宝
  • 百望税控盘电子发票开好了如何打印及导出发票
  • 滞留票税务局会罚款多少
  • 如何打印更正申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设