位置: 编程技术 - 正文

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

  • 石油税费是多少
  • 增值税和所得税地方留存比例
  • 转账支付水电费属于什么会计科目
  • 通用机打发票内容可以随便写吗
  • 经营性负债的作用
  • 公司股东和自然人股东可否代持股权
  • 回单结算卡丢失了严重吗
  • 车船税应该计入什么费用
  • 企业卫生费是指什么
  • 开立基本账户所需资料
  • 作为福利手段福利概念的三个条件是
  • 材料税款抵扣
  • 无形资产后续支出计入什么科目
  • 2018企业所得税小微企业优惠政策
  • 一般纳税人地税怎么收费
  • 增值税普通发票怎么开
  • 小微企业工会经费的减免政策2023
  • 会员的消费频次怎么计算
  • 设备租赁成本会计分录
  • 不得免征和抵扣的税额
  • 建筑队能开哪些项目
  • 未确认融资费用属于企业资产类科目对不对
  • 专项应付款会计科目代码
  • 财政收支结余
  • 什么是餐饮服务
  • 增值税怎么填表
  • 电脑进不了系统怎么用u盘重装
  • php 时间差
  • igfxsrve.exe
  • php获取多选框的值
  • php stat
  • 非货币性资产交换补价大于25%的会计处理
  • 中科大ustc-guest
  • 分公司独立核算和非独立核算哪个好
  • 溢价收购股权会计处理案例
  • 以摊余成本计量和以公允价值计量的区别
  • 大型语言模型的教育应用
  • ue4ui界面制作
  • 企业购进固定资产,在安装完工交付使用时
  • 三方债权债务抵销
  • 销售产品用什么词形容
  • 2022年最新版微信
  • java中空字符怎么表示
  • mongodb导出数据库数据文件
  • 织梦cms要钱吗
  • 专家评审费属于咨询费吗
  • 报税是按照实际收入还是开票
  • 母公司借款给子公司如何做账
  • 属于原始凭证的有( )
  • access数据库修改字段类型
  • 房地产企业建成后先出租的房地产
  • mysql复制粘贴
  • 变动成本法的计算步骤
  • 小规模纳税人零税率怎么申报
  • 个体工商户营业执照申请流程
  • 施工单位结算
  • 支付贷款利息的现金流量怎么指定?
  • 营业外收入核算的内容有
  • 企业坏账准备提取的方法和提取的比例由国家统一规定
  • 退回备用金在现金怎么办
  • 实例讲解液化滤镜瘦身
  • win10多屏设置方法
  • win7大小写提示图标
  • Linux下SSH Session复制功能实现方法
  • linux操作系统的基本操作
  • windows tcp
  • 如何更改win10管理员账户
  • win10小娜无法启动语音识别
  • linux强大的网络功能
  • jquery插件大全
  • nodejs 模块
  • Android 让EditText失去焦点避免自动弹出输入法
  • cocos creator内存性能优化
  • 3d图形学原理
  • jquery设置title
  • JavaScript中的数据类型
  • unity3d 场景
  • android进阶书籍
  • 深圳国税局官网
  • 地源热泵有收费标准吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设