位置: 编程技术 - 正文

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

  • 增值税发票必须本人去开吗
  • 什么是减免税额90%
  • 增值税专用发票是干什么用的
  • 纳税人的住房租金专项附加扣除标准有
  • 文化建设税是含税价吗
  • 增值税发票记账联要盖章吗
  • 怎么知道购货方电话号码
  • 土地政策补贴
  • 甲供材能否开具增值税专用发票
  • 企业年金也需要缴纳吗
  • 已提足折旧的固定资产残值怎么处理
  • 基本医疗支付范围
  • 工程节点奖金
  • 企业收到个体户开的发票
  • 应收账款入账金额的确定方法
  • 上市公司发行股票可以自行销售吗
  • 免租期租金能否确认递延所得税吗?
  • 国税的应交税款在地税的财务报表上怎么填?
  • 汇算清缴退税现金流量表
  • 一般纳税人注销公司需要什么资料和流程
  • 企业净资产指的是什么?
  • 采购核算成本的核算方法
  • 外籍人士离职补偿
  • 公司低价处理旧汽车涉税账务处理
  • 去银行打印公户流水需要带什么
  • 小型微利企业收入超过300
  • 人力资源服务收入计入什么科目
  • 商业一般纳税人税率多少
  • mac怎么设置桌面组件
  • 缴纳税款滞纳金计算方式
  • 只交社保不发工资可以吗
  • 情人节海报怎么画简单
  • 客户申请退款商家拒绝退货退款会有什么效果
  • fatal error: opencv/cv.h: 没有那个文件或目录 错误;fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录,opencv多版本
  • 应交税费会计分录例题
  • 购买免税农产品的会计分录
  • 收回已确认的坏账准备为什么在贷方
  • 资金支出预算的项目
  • 工伤报销入账
  • 油卡预付卡发票能入费用吗怎么入账
  • php技术和mysql怎么结合
  • struts2漏洞检测工具下载
  • 针对多用户实现什么功能
  • grpc 调试工具
  • 职工医保报销后病情会泄露给单位吗
  • 财政零余额账户存款
  • 记账凭证银行利息入息
  • 小规模纳税人如何开专票
  • 帝国cms简介标签
  • 固定资产净残值账务处理
  • 公司人员工资计算方法
  • 支付国外佣金的税率多少
  • 综合所得汇算清缴是什么意思
  • 减免增值税计入营业外收入影响利润
  • 小企业会计准则2023电子版
  • sql2000数据库怎么删除数据
  • sql数据对比语句
  • 稳岗返还资金最新账务处理
  • 车辆违章有几种处理方法
  • 开发票的其他要求是?
  • 账簿凭证的管理要求
  • Microsoft SQLServer的版本区别及选择
  • win10有三个系统
  • win2003设置自动重启
  • 虚拟机打开提示物理内存不足
  • win8应用商店打开很慢怎么办
  • win7任务栏窗口总是自动切换
  • win7系统怎么设置屏幕常亮
  • centos最小化安装步骤
  • win8怎么设置桌面
  • 深入解析windows
  • cocos2dx 2.2.2
  • unity mobile3d
  • vue拦截器的作用及使用
  • js frameset
  • Node.js中的事件循环是什么
  • node.js中的http.response.getHeader方法使用说明
  • 兖州宁德新能源官网首页
  • 非正常户解除申请理由
  • 财政局,人社局和法院哪个好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设