位置: 编程技术 - 正文

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

  • 税金及附加现金流量表
  • 车船税每年都要交吗不交有什么影响
  • 含税价怎么算不含税价
  • 农产品的税率是9%吗
  • 筹建期印花税退税分录
  • 一般纳税人能否享受残保金优惠
  • 资产负债表应交税费期末余额是什么意思
  • 外企当年利润能赚多少
  • 餐补和车补可以税前扣除吗?
  • 社会保险的登记和申报程序
  • 免税销售额扣除项目本期实际扣除额
  • 风险纳税人不处理行吗
  • 基金经费管理办法
  • 会计成本核算的三种基本方法
  • 金蝶资产减值损失取数计算公式
  • 公司自己的食堂需要办理食品经营许可证吗
  • 跨年的物业费如何记账
  • 项目工程会计账务处理
  • 城镇土地使用税征收范围
  • 税前净利润等于什么
  • 上市公司的组织形式
  • 汽车销售私下收客户红包
  • 资源管理器被关闭了怎么恢复
  • 退税到账怎么做账
  • 微信公众号 h5 保存openid
  • 不动产进项税额转出计算公式
  • 公允价值变动损益借贷方向增减
  • windows7简洁版
  • 普通发票丢了如何入账
  • 坎塔布莱恩
  • 在一株植物上行走的作文
  • 业务招待费计入什么会计科目
  • 更改税种需要哪些资料
  • php 抓取别的网站的内容
  • PHP magento后台无法登录问题解决方法
  • php弹出提示框
  • 集团公司对子公司的内部审计
  • uname命令功能
  • 高德地图的2种导航方式
  • 工资直接计入管理费用了怎么办
  • 公司必须要申报工资流水吗
  • mongodbwin7能安装么
  • 私募基金成立的规模条件
  • 收入重复开票跨年了怎么处理
  • 出口运费怎么入账
  • 缓交社保个税怎么报?
  • 补交土地税要交多少钱
  • 固定资产没收到发票能折旧吗
  • 没有收入有支出怎么处理账务
  • 企业最应避免的外部环境和内部条件组合是
  • 未开票收入怎么报税
  • 收到补助款的会计分录
  • 会计处理是会计分录吗
  • 会计基础知识归纳大全
  • sql server储存过程的创建与使用
  • sql基本教程
  • win8升级win10系统会卡吗
  • win10无法新建文件夹怎么办?(已解决)
  • windowsxp如何清理磁盘
  • 轻松跨越英语关在线阅读
  • win8 防火墙
  • 特俗字符
  • window10通知
  • win8.1安装过程
  • windows7出现错误恢复怎么办
  • win7系统防火墙无法关闭
  • ComboBox 和 DateField 在IE下消失的解决方法
  • 用简洁的语言推荐一本书
  • unity 3d脚本编程
  • node.js入门
  • python中2和2.0的区别
  • jquery form序列化
  • unity协程会阻塞主线程吗
  • 深入理解计算机系统
  • android基于
  • android源码下载地址
  • 高速发票查询平台官网
  • 南京税务登记查询官网
  • 契税5年什么意思?
  • 济南车辆购置税完税证明电子版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设