位置: 编程技术 - 正文

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

  • 增值税开票软件怎么升级最新版
  • 权益法核算转成本法
  • 金融业产值和金融业增加值有什么不同
  • 费用发票能不能直接挂应付账款里
  • 工程款按进度付款开票分录
  • 有会计从业资格证还有用吗
  • 中药饮片增值税税率
  • 冲减上年度收入的会计分录
  • 设备使用率怎么计算公式
  • 小公司可以不交五险一金吗
  • 非行政性罚款可以撤销吗
  • 向非关联企业捐赠现金会计分录
  • 国有独资企业董事会应当在每年
  • 退税上传,申报文件上传失败
  • 怎样理解递归
  • 以前年度损益调整怎么用
  • 税务局查到发票有问题
  • 发给职工的交通补贴
  • 无法收回的账务处理
  • linux硬链接命令
  • 主营业务收入会计分录例题
  • 米苏拉塔是哪个国家
  • php 电商
  • 把ChatGPT接入我的个人网站
  • 计算机专业的毕业设计作品新颖
  • php魔术方法功能与用法实例分析
  • 应付职工薪酬总账和明细账
  • 资产负债表没有期末数
  • 广告费支出税前扣除标准30
  • 其他综合收益是利润表项目吗
  • 存货跌价准备的账务处理
  • java委托模式和代理模式
  • 原材料退库的会计分录
  • 织梦cms官网
  • 准则对()、()和()等作出基本规定
  • 软件行业的成本核算
  • 建筑工程承包合同
  • shell取命令执行结果
  • 公司首次申报个人所得税
  • 科技项目专项资金
  • 房地产企业所得税管理办法
  • 应付票据转应付账款有附件吗
  • 政府补助收入是指
  • 研发支出全部资本化能不能评高企
  • 车辆使用费包括油费吗
  • 年底暂估收入,年初怎么做
  • 坏账准备计入营业外支出什么明细
  • 招标场地费由谁支付
  • 银行卡里的钱怎么转出来
  • sql语句的查询语句
  • navicat连接mysql时出现1045错误的解决方法
  • xp系统快捷启动按哪个
  • ipssvc.exe - ipssvc是什么进程 有什么作用
  • windows mobile
  • 在linux操作系统中,/etc/rc.d/init.d
  • 【Cocso2d-x Lua笔记五】quick中的display
  • perl 时间转换
  • unity画面效果润色
  • unity单选
  • node.js批量添加数据
  • django内置组件
  • Clean Empty Directories on Unity3D and Git
  • linux shell执行命令
  • JavaScript事件处理器中的event参数使用介绍
  • wordpress教程
  • 判断jquery对象是否存在
  • 安卓 存储权限 访问的地方是哪里
  • 哪个机场离东莞樟木头最近
  • 12333医保缴费具体步骤
  • 国内免费机场
  • 云南省税务申报流程
  • 辽宁取暖补贴发放标准2020
  • 机票电子发票怎么作废
  • 云南省地方税务局官网
  • 港股印花税什么时候下调
  • 商贸有限公司怎么运营
  • 税控盘抵税申报表怎么填
  • 国税是哪几种
  • 济南税务局,济南电子税务局官网
  • 江西国家税务局入围体检名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设