位置: 编程技术 - 正文

基于像素的碰撞检测(移植到cocos2dx 3.x)(基于像素的分类方法)

编辑:rootadmin
感谢原文: 2.x的,我修改了一下,这个版本是Cocos2d-x 3.x可用版本。Pixel Perfect Collision Detection (Using Cocos2d-x 3.x)This post found its way because I couldnt find the answer to one of the questions I asked on StackOverflow ( and thought there would be others like me in search for an answer.Collision detection is an integral part of almost all games. It is used to find when a bullet hits an enemy or when you bump into a wall etc.There are many different requirements when we do collision detection and depending on our game we choose one of the many detection techniques.The default Collision detection mechanism used by games and provided in almost all game engines and frameworks is a “Bounding Box” collision.Simply put, a “Bounding Box” collision detection system the sprites/objects being checked for collision are treated as the smallest rectangle which completely engulfs them. Then these two Boxes are checked if they are colliding with each other.But sometimes this very simple collision detection system is not accurate. Specially when we use sprites with alpha values (mostly png files) or when our objects are rotated by some angles. See the image below: Pixel – Perfect collision detection is a system where we check if the objects concerned are actually colliding rather than just being part of a bounding box which is bigger than their size. WARNING: This system though more accurate is obviously more performance intensive and hence depending on your game requirements choose wisely about which of the different systems you want to use.TIP: This system though written specially for Cocos2d-x framework can be easily understood and implemented for any language/framework you are using.So its time to get our hands dirty,We are going to develop a Singleton Class for collision detection and just plug and play this in any project we are doing.Things used:1. Singleton Class – CollisionDetection2. Opengl Vertex and Fragment Shaders3. CCRenderTexture Class – Cocos2d-xTheory:1. Create a CCRenderTexture which is going to serve as a secondary draw buffer.2. We first do a simple collision detection (Bounding Box) to check if the two sprite’s bounds are colliding3. If step 2 is a success then we are going to draw the two concerned objects in our secondary buffer we created in step 1. (We are going to set its visibility to false, so that even though we draw something, nothing will we visible to the end user)4. Using openGL fragment shaders we are going to draw one of the objects completely RED and the other completely BLUE! 5. Using another of openGL functionality glReadPixels we are going to read the pixels data of all the pixels in the Rectangular area (Intersection area) of the bounding box collision6. We are then going to loop through all the pixel values and check if a single pixel has BOTH the RED and the BLUE pixels. If they have then the objects are actually colliding or else not.Now here is the code for the above steps. I have commented the code for you to understand what is going on. If there are any questions please leave in the comments and I will try and answer to the best of my knowledge

推荐整理分享基于像素的碰撞检测(移植到cocos2dx 3.x)(基于像素的分类方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于像素的图像增强方法是一种非线性灰度变换,像素碰撞检测,像素碰撞检测,基于像素的分类方法,基于像素的图像,也可以称为,像素碰撞检测,基于像素的图像,也可以称为,像素碰撞3d,内容如对您有帮助,希望把文章链接给更多的朋友!

CollisionDetection.h

CollisionDetection.cpp

SolidColorShader.fsh基于像素的碰撞检测(移植到cocos2dx 3.x)(基于像素的分类方法)

SolidVertexShader.vsh

For using the Collision Detection Class:

1. Initialize the CCRenderTexture object

2. Call the Singleton function whenever collision detection required

cocos2dx 3.2 读写XML,基于tinyxml2封装的易使用,更灵活的XML接口。中文国际化。 简介cocos2dx3.2读写XML使用的是tinyxml2库。tinyxml2是一个轻量的解析XML的开源库,C编写,跨平台,内存占用很小。解析文件时,在内存中生成DOM模型,即文

cocos2dx onpause崩 原文:

cocos2dx3.2 xcode中资源路径设置问题 在xcode中,将资源分类,然后将各自的文件夹添加到Resources,运行程序的时候老是报错,说是找不懂资源,原因就是找不到资源路径。那么如何设置呢?1

标签: 基于像素的分类方法

本文链接地址:https://www.jiuchutong.com/biancheng/372619.html 转载请保留说明!

上一篇:Cocos2dx 3.0 实战之—— 重写《超级马里奥》其八 主菜单界面(cocos2d教程)

下一篇:cocos2dx 3.2 读写XML,基于tinyxml2封装的易使用,更灵活的XML接口。中文国际化。(cocos creator读取json)

  • 出口退税认定如何办理
  • 减税性质代码及名称是什么意思
  • 生产经营个人所得税退税流程
  • 暂估入库年末怎么处理
  • 供应商属于应收账款吗
  • 政府补贴是否要交企业所得税
  • 发票打印机贵吗
  • 购入股票作为短期投资是什么凭证
  • 小型企业利润表
  • 公司电视机 摊销多少年
  • 个人设备投资需要交税吗
  • 环境保护税税率
  • 上海市购销合同印花税计税金额怎么算?
  • 补交注册资本的法律规定
  • 现金采购合理吗
  • 只有原始凭证无入库单跟发票如何记账?
  • 员工探亲路费报销交个税吗
  • 对方公司只能开发票吗
  • 购销合同印花税税率
  • 企业投资股票取什么名字
  • 本企业领用外购原材料进项税要转出吗
  • 什么情况下需要承担法律责任
  • macos big sur将安装在macintosh hd
  • 苹果电脑mac设备在哪里
  • 询证函是什么文书
  • 农作物种植销售
  • php网站架设
  • 异地工程预缴增值税怎么计算
  • key是什么文档
  • 代金券消费怎么做分录
  • 公司收入没有进项税额
  • 企业接受现金捐赠如何开具发票
  • 领用材料已抵扣进项税
  • 楼房贷款需要什么手续没有银行流水怎么办
  • 固定资产清理净损失为什么在贷方
  • php获取前一天的时间
  • python的pillow库如何安装
  • 应交增值税为负数怎么处理
  • 个税申报系统升级要多久
  • 税务发票红字发票怎么开
  • 公司股票买卖账务处理
  • 微擎框架下载
  • 领取营业执照后超过30天
  • 个人劳务费可以开什么类目?
  • 存货在报表里是如何体现的
  • 所得税申报表里季初资产是指什么
  • 盖骑缝章的合同可以双面打印吗
  • 预收账款转主营业务收入怎么描述
  • 支付货款退回如何处理
  • 购买不动产增值税率
  • 黄金以旧换新是不是不划算
  • 收入可以直接转成本吗?
  • 汽车折旧年限及残值率是多少
  • 会展费会计分录
  • 返聘退休人员工资标准
  • 年底需要结转的会计科目
  • sql数据分类
  • 数据库高并发怎么解决
  • 自我挖掘的才干
  • linux的rz sz命令
  • Ubuntu Eclipse MyEclipse 添加GBK支持 不乱码
  • centos 修改网络配置文件
  • sharedprem.exe - sharedprem是什么进程 有什么作用
  • shell 时间格式
  • win10地理位置
  • Win10手机版校
  • 十个linux命令
  • Unity3D ugui事件监听机制
  • Screen.sleepTimeout=SleepTimeOut.NeverSleep 禁止屏幕锁屏
  • href中的?
  • nodejs oom
  • jquery 图片
  • js string string
  • 莱鸟人集团
  • 用jquery
  • 东营市税务局领导分工
  • 税务局巡察反馈问题清单
  • 北京税务局待遇有住宿吗
  • 土地整治税率是多少
  • 税务转为非正常户的后果
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设