位置: 编程技术 - 正文

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

  • 房地产开发企业预缴增值税
  • 个人出租不动产税率
  • 增值税影响利润总额吗
  • 公司食堂菜金会计分录
  • 新企业会计准则2021
  • 临时用工的会计分录
  • 小规模附加税减半吗
  • 资产负债表的期初余额是年初余额吗
  • 企业未按规定取得发票如何处理
  • 无名称发票可以抵扣吗
  • 个人所得税允许扣除的费用
  • 地产公司代办房产证
  • 研发样机是什么
  • 货运代理可以开9个点的发票吗?
  • 收入确认和发票的区别
  • 社保基数调整补收是什么意思
  • 物业费的进项税额可以抵扣吗
  • 一般纳税人认定书
  • 同程旅行酒店预订
  • 企业自行建造的固定资产
  • 资产负债表中其他流动资产怎么计算
  • 以前年度企业所得税少计提实际已交
  • 劳务公司的主营业务成本是人工工资需要个人开发票吗?
  • 一般纳税人资格证明在哪里开具
  • 退休返聘人员的劳动权益保护
  • 专用发票的审核要多久
  • 专用发票可以抵税是什么意思
  • win7系统右键菜单太多怎么办
  • 华为鸿蒙harmonyos刷机
  • windows11iso镜像多久更新一次
  • php排队系统
  • 长期待摊费用的概念
  • 怎么给文件添加属性
  • php字符串赋值
  • 费用发票开的是跨年的账务处理?
  • 文件错误会追究拟稿人吗
  • 不动产租赁费计入什么科目
  • 产品成本计算的分类法适用于( )
  • php十进制转二进制算法
  • anjedi编辑器
  • 政策性搬迁补偿收入
  • 核销固定资产时会计处理
  • 借方和贷方是什么意思 现金日记账
  • 公司抽奖奖品怎么做账
  • 常用的收集数据方法有
  • 计提基建借款利息会计分录
  • 购买铝材会计分录
  • 盘盈固定资产如何处理
  • 待摊费用属于企业的债权
  • 冲销上个月成本的会计分录
  • 电子承兑汇票承兑后几天到账
  • 金税四期查到了怎么办
  • 取得虚开增值税专用发票罪量刑标准
  • 公司交残保金是什么意思
  • 公司宿舍楼出租让我当甲方违法吗
  • 政府补助的房子叫什么
  • 财政补助收入属于资产类还是负债类
  • 计提社保如何做分录
  • 已认证的发票怎么做账
  • 发票红冲怎么回事
  • win7系统安装win10 怎么安装
  • 怎么看solaris版本
  • windows的服务怎么打开
  • win8怎么禁止开机启动项
  • wim10飞行模式
  • 设置全局
  • linux的shm共享内存
  • Unity3D游戏开发培训课程大纲
  • python中print函数的end参数
  • 三个文件怎么汇总到一个里
  • python关键字none
  • 瀑布流软件
  • python搭建网页
  • 道路运输业属于工贸行业吗
  • 江苏囯税电子
  • 在进口环节海关代征的税种有
  • 临沭公交车多久一班
  • 银行收取手续费可以抵扣进项税额吗
  • 国家税务总局办公室电话
  • 税务设备有什么特点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设