位置: 编程技术 - 正文

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

  • 青岛山公寓二手房出售
  • 金税三期的主要系统
  • 小规模纳税人税额怎么做分录
  • 各行业的利润率表
  • 怎么找回丢失的手机号
  • 工程中常见的土方工程有哪些
  • 开票地址太长显示不全
  • 所得税季报填错了已经申报了
  • 工作未满12个月被辞退时前月平均工资怎么计算
  • 出口产品报关单上保险费与实际不符可以丿退税吗
  • 申请国家知识产权的条件
  • 复式记账法和会计分录
  • 银行利息的现金流量项目是什么
  • 收到发票多开税额进项转出是怎样的?
  • 差错更正要调去年的吗
  • 缴纳了土地增值税怎么退
  • 预付款可以开专票吗
  • 小型微利企业所得税优惠政策2022
  • 建筑企业能申请小微企业吗
  • 固定资产进项票能抵扣吗
  • 期望和方差的计算例题
  • 跨月可以开票吗
  • 增值税税差调整原因
  • 石油天然气用途
  • 固定资产作为投资入股为何体现在资本公积
  • 重装系统出现无效签名
  • VMware虚拟机中怎么复制粘贴
  • win10改头像怎么删除以前的头像
  • 逾期未申报如何申报
  • 应收账款债权融资计划业务操作指引
  • php的implode
  • php exit绕过
  • 搬迁收入增值税
  • 发票收款人和复核人,开票人没填影响报销吗
  • uniapp前端面试题
  • 小满内容
  • 购税盘分录
  • python制作chm
  • 什么是微前端
  • php上传照片
  • 充值款如何领取红包
  • 什么是行政规费和税费
  • 职工教育经费具体比例
  • 员工业余自学
  • 上传附件不成功怎么回事
  • php的do while语句
  • 小微企业短小频急
  • 数据库系统中,用户通过什么访问数据
  • 公司车辆缴纳车船税
  • 事业单位是怎样向上申请招人的
  • 负债与所有者权益比率计算公式
  • 可转债中签卖出流程
  • 合理损耗如何计算单位成本
  • 母公司无偿给子公司房屋使用谁交房产税呢
  • 事业单位库存物品
  • 集团公司向下属发评先奖金合法吗
  • 收到社保局返还的各类社保款项应从哪个表单发起
  • 在岗职工平均工资在哪里查询
  • 作废的发票税额扣税了怎么办
  • 超市购物卡怎么办理
  • mysql使用语句
  • SQL 导入导出Excel数据的语句
  • Windows Remote Shell(WinRM)使用介绍
  • xp系统盘空间不足怎么办
  • SUSE Linux Enterprise Server 11 SP1 安装教程图文详解
  • centos7ssh登录
  • mac新版系统
  • win7系统的电脑
  • vb6.0win10安装教程
  • ftql
  • bootstrap启动类
  • bootstrap入门
  • 安卓开发解析xml
  • dos命令怎么输入命令
  • js小数计算精度问题
  • python黑魔法手册
  • jquery做菜单
  • 河南居民医保网上缴费查询
  • 土地招拍挂土地出让金
  • 律师费不给了会怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设