位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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动画)

  • 赠品要做视同销售申报纳税吗
  • 增值税专用发票可以开电子发票吗
  • 出让固定资产怎样计算增值税
  • 企业房产税怎么申报缴纳
  • 土地增值税预征率
  • 施工企业所得税税率是多少
  • 员工自己领取社保卡需要带什么资料
  • 公司交的拍卖费计入哪个会计科目?
  • 转出未交增值税怎么算
  • 个体工商户税收优惠政策2023年最新
  • 代扣代缴个人所得税现金流计入哪里
  • 是不是所有的进口药都不能报销
  • 钢板租赁费用
  • 集体福利支出包括
  • 个税按计提申报还是按发放申报
  • 预收账款的会计编码是多少?
  • 产品毛利率计算表
  • 质保金怎么挂账
  • 自然人个人能否纳税
  • 土地使用税计税依据及计算方式
  • 财政拨款税务处理方法
  • 小规模企业交纳印花税吗
  • 软件开发增值税即征即退2022
  • c盘垃圾太多需要重装系统嘛
  • 开具红字发票后所冲销的销项税应怎么处理?
  • 长期停工的影响
  • ghoststarttrayapp.exe是什么进程 有什么作用 ghoststarttrayapp进程查询
  • 建筑行业有哪些岗位,从事的要求有哪些
  • php 错误提示
  • php培训得花多少钱
  • php输入月份输出天数
  • esp8266 dht22
  • vue3+ts+vite
  • 员工旅游是什么意思
  • css+html
  • idea2020.2.3创建web
  • 谷粒学院项目含金量
  • 杀疯了出自哪里
  • 命令grep
  • 注销的公司需要清算吗
  • mysqlbinlog命令详解
  • 软件服务费可以全额抵扣吗?
  • 个人所得税红利所得税率
  • 微信支付宝等第三方支付的优缺点
  • 金税四期上线后对保险
  • 2021年废铁回收
  • 主营业务收入借贷方
  • 绿化工程苗木成活率交工标准
  • 实收资本印花税税率多少
  • 工会经费支出审批表
  • 应收账款确认无法收回,确认为坏账损失
  • 养猪场财务账目怎么做
  • 筹建期费用账务处理
  • 运费可以抵扣进项税额
  • 行政事业单位会计风险来源于日常的会计活动
  • 其他业务收入与其他业务成本的关系
  • 公司转让二手车需要缴纳什么税
  • 计提盈余公积比例
  • 如何查询公司经营异常
  • 企业初建
  • 数据库表的创建心得体会
  • vista启用aero
  • freebsd操作命令
  • 昂达主板插线安装图解
  • win7开机taskeng
  • ubuntu设置关闭按钮在右侧
  • crossfire.exe是什么
  • windows 8.1 with update (multiple editions)
  • ibm svc是什么意思
  • win10电脑提示
  • qt for 安卓
  • java线程池创建
  • 使用jsonp跨域,服务端如何改
  • jquery添加节点
  • 安卓圆角矩形图标
  • 个人所得税代扣代缴手续费返还政策
  • 北京税务局公众平台官网
  • 86年的2020年是多少岁
  • 增+6=多少
  • 北京市朝阳区地税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号