位置: 编程技术 - 正文

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

  • 征收率 税率 区别
  • 资产负债表不平衡如何查找
  • 实收款比应收账款少3万怎么处理
  • 应付职工薪酬费用的对应科目
  • 无形资产摊销月底最后一天怎么算
  • 明细分类账采用的格式有
  • 其它应付款是否可以直接冲收入呢?
  • 集团公司收到的发票
  • 财政局专利补助政策
  • 主营业务成本如何算
  • 企业平时计提的税费分录
  • 专项产资金支出要怎么做分录?
  • 公司之间借钱不还违法吗
  • 当月忘记暂估怎么办
  • 航天信息的服务费
  • 待认证进项税额借贷方向
  • 物业收租金必须要发票吗
  • 现金盘盈盘亏怎么计算
  • 车船税的减免税
  • 产业扶持周转金退回多久到账
  • 自己种的苗木开发票要什么手续
  • 递延所得税资产借贷方向
  • 涉及农业的税收优惠有哪些
  • 视同销售的企业所得税汇缴表怎么填列?
  • 原材料座椅报废怎么处理
  • 投资者减除费用30000
  • 销项税多了冲销部分的怎么做账
  • windows11怎么设置ipv4地址
  • 餐饮业会计做账技巧
  • pps影音怎么看电视直播
  • 企业税收有哪些部分组成
  • 出口零退税率商品有哪些
  • 什么是会计分录其一般表达形式是怎样的
  • nbscheduler是什么程序
  • php生成随机字符串源,且不会重复出现
  • 部门活动经费怎么算
  • 高德地图海量点图层刷新
  • linux安装配置ftp
  • ai运行环境
  • 可供出售债权投资
  • 应交税金会计编码
  • 优先股可转让吗
  • 软件和集成电路企业
  • 关税完税价格计算增值税
  • 金蝶软件如何输入红字
  • 印花税最新的征收方法
  • 关闭论坛
  • 股权变更涉及土地增值税吗
  • mysql 网页用户界面
  • 无偿调拨资产怎么提折旧
  • 厂房无偿使用交税吗
  • 公司买车可以抵扣企业所得税吗
  • 企业哪些税费不通过应交税费账户进行核算
  • 收不回来的应收账款
  • 预计所有者权益增长率
  • 暂领款是什么意思
  • 如何填写出售固定资产表
  • 公司工会经费怎么花不违规
  • Linux环境下mysql5.7.13安装教程
  • ubuntu安装软件没反应
  • windowsserver2008r2密码重置
  • fedora19
  • freebsd怎么用
  • win7登录密码怎么改
  • 深度技术win10怎么样
  • windows xp怎么设置桌面
  • windows无法升级
  • winxp内存不能为read
  • linux系统的
  • win7设备管理器里面没有网络适配器
  • cocos2d官网
  • node·js
  • jquery获取document对象
  • 搭建maven开发环境
  • js动态创建script标签
  • ruby元编程第二版
  • 技术转让条件
  • 稳岗补贴是否需在企业所得税汇算时调增
  • 广东税务数字化平台官网
  • 单位车辆购置税怎么申报缴纳
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设