位置: 编程技术 - 正文

Bullet(Cocos2dx)之凸多面体形状和组合形状

编辑:rootadmin

推荐整理分享Bullet(Cocos2dx)之凸多面体形状和组合形状,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

接高度地形图和三角形网&#;,同样是复杂图形的创建。

先来看看效果

左边通过提供的顶点生成的多面体,右边创建一个由球体与长方体组成的组合形状

首先来了解凸多面体

根据提供的顶点创建一个凸多面体形状,无论给定的顶点顺序是怎样的,都是创建一个由这些顶点组成的凸多面体。

先来看看btConvexHullShape的解释及构造函数

第一个参数就是顶点数据,第二个是顶点个数,第三个是每个顶点占得字节。

同时提出不需要一次将所有的顶点全部给出,以后可以添加:

增加的顶点信息,是否重新计算AABB包围盒

对于提供顶点数据,用户不需要一直保存,看源码可知btConvexHullShape会用btAlignedObjectArray<btVector3>m_unscaledPoints;

来保存这些顶点数据。

来个示例

看上图,为什么会出现一个是三棱锥,而一个却不是呢?,其实两个形状是一样的,请看我慢慢道来。

前面的解释btConvexHullShape会根据提供的数据建立多面体,我们要牢记在心。

通过查看继承关系图,我们知道btConvexHullShape继承自btPolyhedralConvexShape,

而btPolyhedralConvexShape,提供了

可以这样理解,将提供的点&#;式化成多面体,也就是说提供顶点后就可以调用initializePolyhedralFeatures

&#;式化成多面体。

上图下方是按我们提供的顶点的顺序生成的结果,上方为&#;式化后的结果

下面来看看笔者是如何加入到PhysicsWorld3D

提供两个重载函数,一个是直接将包含顶点数据的浮点数据指针作为参数, 另一个是将顶点数组作为参数。

提供第二个重载的目的就是为了从直接将raw文件的数据传入来生成多面体,还记得raw文件吧?Bullet(Cocos2dx)之创建地形

看个例子

右不&#;式化,左为&#;式化

再来了解一下组合形状

简言之,将多个形状组合成一个图形,最上面的图片右方就是一个组合形状

Bullet(Cocos2dx)之凸多面体形状和组合形状

可由多个不同的Primitive Shape组成

构造函数很简单

默认开启动态树,优化

关键是增加碰撞形状

localTransform形状相对偏移,shape碰撞形状。

相对偏移:加入最终btCompoundShape在(0,0,0),相对偏移就是相对于(0,0,0)

得出要想获得组合形状就要自己创建btCollisionShape,然后添加到btCompoundShape

笔者做了简单的封装

提供简单的结构体来传递Collision Shapes属性

std::vector<PhysicsShapeInfo3D>& shapeList 形状属性列表,来获取组合形状的刚体

来个例子

// 1

shape = new btBoxShape(btVector3(1.f, 1.f, 1.f));

shapeInfo.colShape = shape;

trans.setOrigin(btVector3(0, 1, 0));

shapeInfo.transform = trans;

_shapes.push_back(shapeInfo);

// 2

shape = new btSphereShape(1.f);

shapeInfo.colShape = shape;

trans.setOrigin(btVector3(0, 3, 0));

shapeInfo.transform = trans;

_shapes.push_back(shapeInfo);

_world->addCompound(_shapes, btVector3(0, 0, 5.f));

上例创建一个上为球体,下为长方体的组合形状

当然也可以通过球体和圆柱创建保龄球,也就可以写出一个保龄球的小游戏。

源代码

Cocos2dx 跨平台使用 环境搭建0引擎介绍Cocos2d-x是一款开源的2d游戏引擎,目的是封装底层绘图代码(OpenGL),简化2D游戏的开发过程.它原型是Cocos2d,最早出现在iphone上(Cocos2d-iPho

cocos2dx游戏资源加密之XXTEA 在手机游戏当中,游戏的资源加密保护是一件很重要的事情。我花了两天的时间整理了自己在游戏当中的资源加密问题,实现了跨平台的资源流加密,

在cocos2dx中的pushScene()中应用截屏函数 在cocos2dx中,pushScene创建一个场景,而场景的背景是黑色的,目前我还没有找到合适的方法使其透明,所以在网上找到一个方法替代,就是截屏先上代码

标签: Bullet(Cocos2dx)之凸多面体形状和组合形状

本文链接地址:https://www.jiuchutong.com/biancheng/372719.html 转载请保留说明!

上一篇:CCProgressTimer 进度条动画在cocos2dx+lua中的使用

下一篇:Cocos2dx 跨平台使用(cocos如何实现跨平台)

  • 增值税金税盘开票的结论
  • 一般纳税人缴税
  • 新办企业申请一般纳税人的资料
  • 期初未缴税额是什么意思
  • 最惠国税是一种真正意义上的优惠关税
  • 租地建厂房房产税谁交
  • 商铺属于固定资产还是无形资产
  • 确认固定资产减值损失
  • 企业的开办费
  • 融资租赁购入固定资产的融资费用如何扣除
  • 汇算清缴交了税怎么做分录
  • 差额发票的税额怎么计算
  • 零申报企业所得税季度申报表怎么填写
  • 一般纳税人建账建几本帐
  • 退运出口货物的报关流程
  • 非正常户发票管理
  • 增值税一般纳税人证明文件
  • 别人提供原材料加工后加工费
  • 返利冲抵货款会计分录
  • 营改增后房产土地作价入股该如何做税务处理?
  • 企业股权无偿划转是否征税
  • 劳务派遣差额征税税率是多少
  • 个人所得税计算器2023
  • 股权转让收到钱会计分录
  • 技术调试费用开几个点税
  • 红字增值税专用发票信息表怎么填
  • 进口车辆购置税公式
  • 城市维护建设税的计税依据是什么
  • 税没申报不能领发票吗
  • 收到别公司利息怎么记账
  • 发票未到的费用怎么处理
  • 华为p60pro上市时间是几月
  • mac系统怎么设置字体大小
  • linux虚拟机怎么输入中文
  • 苹果电脑mac系统怎么用
  • 高新技术企业研究开发费用加计扣除
  • 职工教育经费会计准则最新规定
  • 玩的最多的手机网游
  • Salzburg with Salzach river, Austria (© MacEaton/Alamy)
  • php实现原理
  • 一般纳税人的好处和坏处
  • 怎么调试vue项目
  • 做了几年前端基础还是很差
  • yolov3 pytorch详解
  • 哪些费用发票可以抵扣企业所得税
  • es6新增了什么
  • 已付款收货未收到发票怎么做账
  • python 多线程处理
  • 低于净资产增资 纳税
  • 政府专项补贴税收
  • 模具费收入计入什么科目
  • 电子发票和纸质发票的优缺点
  • 销售货物的收入计入什么科目
  • 跨年收入冲销如何申报
  • 购买原材料例题
  • 货物赔偿款计入什么会计科目
  • 员工出差的餐费可以抵扣吗
  • 科目余额表没有本年累计怎么办
  • 残保金什么时候截止
  • mysql怎么使用索引
  • win10的java环境该怎么配置?java环境变量配置介绍
  • rapimgr.exe - rapimgr进程是什么文件.有哪些作用
  • centos创建一个文件
  • win7系统连接无线鼠标
  • win7英文输入法
  • macbook xcode
  • ai人工智能python
  • material design admin
  • nodejs socket hang up
  • easyui footer
  • jquery的checkbox,radio,select等方法小结
  • javascript面向对象精要pdf
  • 工具类的作用
  • htc windows
  • 江西省发票查询系统
  • 四川税务申报如何网上申报零申报
  • 公司注册后多久要去税务局登记
  • 公司注销报税怎么申报
  • 统计表主要业务内容
  • 汽车票换票需要手续费吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设