位置: 编程技术 - 正文

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

  • 赔偿给客户的货财务怎么处理
  • 差旅费是计入
  • 递延所得税资产是什么
  • 接受资不抵债并账会计分录
  • 豆粕适用税率
  • 非金融单位贷款利息收入列示什么科目
  • 为什么租赁只能20年
  • 进项大于销项的会计分录怎么做?
  • 买一赠一视同销售征收增值税吗
  • 工伤医疗费全赔吗
  • 购买产品没开发票支付宝支付
  • 银行定期存款取钱需要本人吗
  • 外购材料费用可能计入
  • 超过认证期限的发票怎么处理
  • 企业所得税汇算清缴申报表
  • 稳岗补贴会计怎么做账
  • 分摊的水费应取得何种扣除凭证
  • 结转出租包装物的成本
  • 计提其他应收款坏账
  • 我公司以房产土地为主
  • 电脑c盘变红了怎么回事
  • 从银行提取备用金填制什么凭证
  • 应交税金年终怎么计算
  • 线上网速测试
  • 主营业务收入发票
  • 公司和个人分别交什么税
  • 出售固定资产申报表收入与损益表收入不一致
  • 股东垫付款怎么处理
  • 高新技术企业取消资格怎么处罚
  • 工费经费的计税依据要扣除含税部分吗
  • 【经验分享】使用了6年的实时操作系统,是时候梳理一下它的知识点了 | 文末赠书4本
  • 命令启动服务管理
  • 保险代理人展业成本如何计算
  • 万能转换器mp4
  • 企业所得税季报营业成本包括哪些
  • 设计模式golang
  • 支付个人赔偿款要交税吗
  • 汇算清缴没有调整怎么办
  • 长期股权投资的账面价值怎么计算
  • 银行存款和其他应付款不平怎么处理
  • 什么是公允价值变动收益
  • 挂靠建筑公司企业所得税怎么交?
  • 企业与股东之间的关系,也是企业与投资者之间的关系
  • 电商平台 流量
  • 固定资产申请报告
  • 纳税期限与申报期限的区别
  • 减免税款科目期末有余额吗
  • 置换房产流程
  • 企业会计核算中,对账的内容主要包括
  • 公司注销退回投资款如何账务处理
  • 免税如何做分录发票
  • 个体工商户个税怎么申报
  • 可以抵扣的增值税进项税额
  • 三证合一后还有纳税人资格证吗
  • 审计真实性认定
  • mysql启动服务器失败
  • 电脑开机怎么设置默认系统
  • ubuntu启动菜单 哪个键
  • 怎么u盘装系统win10
  • skydrive官网登录
  • win7旗舰版用户
  • win7pxe-mof:exiting pxe rom
  • cocos2dx怎么用啊
  • 如何理解闭包,闭包的优缺点
  • 批处理 写入文件
  • js 对象key
  • unity每秒执行一次
  • javascript的if
  • js使文本框失去焦点的方法
  • 聊天界面的新消息通知设置 找不到
  • android 开发 教程
  • js实现浏览器状态栏显示
  • 获取intent传递的数据
  • div跟随滚动条移动
  • 判断jquery对象是否存在
  • 税务局国际税收亮点工作总结
  • 进口汽车增值税怎么算
  • 个人能拒绝公司上市吗
  • 免征船舶吨税的范围
  • 重置税务密码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设