位置: 编程技术 - 正文

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

  • 增值税发票如何抵扣税款
  • 增值税普通发票需要交税吗
  • 小饭店税务登记证办理流程
  • 实收资本印花税是营业账簿吗
  • 税金及附加怎么来的
  • 研发费用直接计入成本吗
  • 灭火器属于什么经营范围
  • 财务报表季报申报报表要分开申报吗
  • 会计信息采集审核需要多久
  • 前期差错更正会引起所有者权益总额变动吗
  • 接受虚开增值税 经侦立案
  • 进料料件内销账务处理怎么做?
  • 融资租赁租金会计科目
  • 往来核算在会计哪个科目
  • 应付职工薪酬科目有余额怎么调整
  • 建筑工程属于开票项目吗
  • 股权转让过程中需要注意哪些问题
  • 外购物品用于计提折旧吗
  • 留抵进项税额可以挂在转出未交增值税吗
  • 股票现金分红
  • 发票丢失后可以冲红吗
  • 工程施工企业人力资源管理
  • 购买原材料暂估入账的会计分录
  • 出口加工区内企业不能从事的业务有
  • 王者荣耀电脑版怎么键盘操作
  • ubuntu18更换为阿里源
  • 银行承兑汇票开出后多久可以签收
  • 施工企业自建自用的工程
  • 开发票时,一张发票上不同税率要符合哪些要求?
  • 期间费用计入什么科目
  • npp怎么安装
  • 日落后的托莱多全景,西班牙 (© Frank Fischbach/Alamy)
  • 利润的构成要素包括
  • vue鼠标点击事件点击改变效果,再次点击恢复效果
  • php面向对象优点,缺点
  • patriotic研究
  • golang和php
  • 给最爱的他
  • 往来款的账务处理
  • 社会保险基数怎么办
  • python统计出现次数并排序
  • 织梦官方网站
  • 织梦cms怎么样
  • 记账凭证错了
  • sqlserver分页查询越到最后越慢
  • acca考试安排及时间
  • 服装厂布料都是在哪里进的
  • 为什么银行结息不加入账户
  • 股东参与经营可以退股吗
  • 银行卡账户年费
  • 确认收入一定要交增值税吗
  • 固定资产盘点表excel
  • winserver2008开机启动
  • winxp系统任务栏不见了
  • ubuntu20.04怎么样
  • 如何用u盘装系统 知乎
  • STMGR.EXE - STMGR是什么进程
  • win 8怎么样
  • archlinux ip地址
  • win8系统怎么打开我的电脑
  • windows10周年更新
  • isignup.exe是什么进程 isignup进程查询
  • 怎么关闭win10升级
  • win10怎么关闭欢迎界面
  • win8 远程桌面
  • cocos2dx小游戏
  • opengl gpu编程
  • opengl transform
  • javascript中的this属性
  • node.js中的http.request.end方法使用说明
  • vim fold
  • 关于echo的名字
  • rom开发是做什么的
  • Firefox window.close()的使用注意事项
  • 全面解析A型天秤座男
  • python批量删除行
  • 不用税控盘可以勾选发票吗
  • 企业注销结果查询
  • 如何当好一名税务局长
  • 综合所得税包括哪些内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设