位置: 编程技术 - 正文

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

  • 劳务合同印花税税目
  • 短期借款现金流
  • 2019年一季度季报怎样填写
  • 房产税存在往期滞纳金吗
  • 外商投资企业与内资合资是国企吗
  • 个体工商户装修经营范围
  • 核算无形资产的过程中,使用的会计账户有
  • 抵账房好不好
  • 个体户购买发票需要什么资料
  • 个人合伙清算如何起诉
  • 家电公司销售电器赠送小礼品如何做账?
  • 质量问题产生的影响
  • 车辆购置税的会计处理
  • 出口退税的办理影响出口吗
  • 年底没有取得发票企业所得税
  • 半成品牛排有营养吗
  • 接待客户的住宿费账务处理
  • 旅行社代订机票发票写个人能报销吗
  • 公司为员工负担个税怎么做账
  • 网上报税申报成功之后该怎么操作
  • 酒店固定资产明细表范本
  • 总公司汇总申报怎么弄
  • 印花税的计税依据是销项和进项的金额
  • vmware10怎么安装
  • 谨慎性原则的具体体现有哪些
  • mom.exe是什么
  • 吕宋岛以南坐落着21座极大的岛屿
  • wordpress功能介绍
  • PHP:pcntl_wifexited()的用法_PCNTL函数
  • 应交税费为负数什么原因
  • Vue vue.config.js 的详解与配置
  • 有限责任公司股东向股东以外的人转让股权
  • 包装物应交消费税
  • OpenAI Translator | 基于ChatGPT API全局翻译润色解析插件
  • easyposer怎么导出
  • php array_product
  • 什么情况下专票税率为1
  • input和printf的区别
  • mongodb基础命令
  • 帝国cms自动推送插件
  • 增值税的税目是什么意思
  • 土地增值税预缴计税依据
  • 固定资产清理账户借方
  • 普票要盖发票的章子吗
  • 企业营业外收入要交所得税吗
  • 红冲作废怎么处理
  • 话费报销属于什么费用
  • 滞纳金冲留底税额怎么算
  • 研发费用入账
  • 重分类调整分录是什么
  • 总公司是一般纳税人分公司是什么
  • sql server 2012 数据库bak脚本还原
  • MySQL存储过程和函数有什么区别?
  • 在window7
  • win7桌面和win10桌面
  • fedora设置
  • linux 网站备份
  • 在pc上安装了hp网络打印机需要注意什么
  • win8系统崩溃无法开机
  • explorer.exe进程出错
  • win10 directx9
  • win7使用技巧图解
  • win10系统内置应用软件有哪些
  • win8是怎么样的
  • 安卓百分百
  • cocos 源码
  • jquery简单例子
  • Unity3D游戏开发毕业论文
  • window.close(); 关闭浏览器窗口js代码的总结介绍
  • 安卓开发解析xml
  • Node.js中的全局对象有
  • shell嵌套for循环
  • python import os
  • python编程快速
  • javascript学习指南
  • 安卓端测试
  • js数组用法
  • 长春购房契税税率
  • 周报要素
  • 主题党日活动标题副标题格式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设