位置: 编程技术 - 正文

基于像素的碰撞检测(移植到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)

  • 支付给境外个人的租金
  • 政府会计制度等式
  • 金蝶专业版利润表本年累计公式
  • 负债类科目有借方余额吗
  • 关于合并商誉应该减值还是摊销的辩论
  • 多付银行承兑退回的会计分录怎么写?
  • 留底税款
  • 企业购进材料的会计分录
  • 原材料什么时候结转成本
  • 会计去报税流程
  • 增值税没达到起征标准
  • 免税发票可以抵多少税
  • 浅析税收滞纳金问题的政策法规
  • 作废章盖在哪个位置
  • 对方承担税费怎么做会计分录
  • 民间非营利组织会计制度及操作实务
  • 客户少付货款怎么做账
  • 受委托研发企业可以享受研发支出吗
  • 营改增后挂靠工程会计分录具体怎么做?
  • 其他应收款会计科目
  • 其他应付款计入什么科目
  • win10系统下怎么安装Java JDK及配置环境变量
  • 清除cmos有什么后果
  • php7多线程
  • 摊销房租费如何做账
  • 修改apache的http服务端口为8080
  • fsmb32.exe是什么进程 作用是什么 fsmb32进程查询
  • 固定资产计提折旧的原则
  • 当月不生产,生产成本怎么处理
  • linux解压安装
  • 戈佐西餐厅
  • php正则替换字符串
  • 房地产企业土地增值税预缴计税依据
  • 微信支付开发者平台
  • 接受捐赠固定资产的改建支出
  • 帝国cms app
  • 现代服务印花税税率
  • 与下级往来账户贷方核算的内容有
  • 个体户办营业执照有什么优点和缺点
  • 民办非企业现金流量表的编制公式
  • 盈利性学校收到财政补贴要缴企业所得税吗
  • 成本费用利润率是什么指标
  • 库存现金的会计分录
  • 增值税减免附什么凭证
  • 个体小企业怎么缴纳个人所得税
  • 废弃土地怎么认定
  • 专利补贴收入计入什么科目
  • 当月财务费用怎么算
  • 快递做账用什么软件
  • 兼职人员属于雇佣人吗
  • 企业收到劳务费会计分录怎么做账
  • 企业组织结构的本质是
  • 酒店食材成本如何分析
  • 工资冲抵借款合法
  • 减值损失账务处理
  • mysql基本命令大全
  • windowsxp忘记密码了怎么办简单点
  • solaris8+apache2+weblogic813+db2_82客户端+128 安装过程
  • 怎么使用winpe
  • WeatherEye.exe - WeatherEye 是什么进程
  • Ubuntu 8.10 Intrepid Ibex Alpha4 官方正式版下载
  • Fatal server error: could not open 无法进图形界面的解决办法
  • mac命令行指令
  • win8电脑锁屏壁纸怎么设置方法
  • libproj.so
  • nodejs支付宝支付
  • unity3d状态机
  • qt搭建opencv
  • nodejs word
  • cmd打开telnet
  • activity之间的数据回传
  • shell终端是什么意思
  • javascript操作文件
  • android基础知识大全
  • android实现侧边栏
  • 河南城乡居民医疗保险缴费怎么交
  • 江苏小孩医保网上缴费
  • 光明区新区
  • 临沂市2020年居民燃气价格
  • 纳税申报的期限是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设