位置: 编程技术 - 正文
推荐整理分享Bullet(Cocos2dx)之凸多面体形状和组合形状,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
接高度地形图和三角形网,同样是复杂图形的创建。
先来看看效果
左边通过提供的顶点生成的多面体,右边创建一个由球体与长方体组成的组合形状
首先来了解凸多面体
根据提供的顶点创建一个凸多面体形状,无论给定的顶点顺序是怎样的,都是创建一个由这些顶点组成的凸多面体。
先来看看btConvexHullShape的解释及构造函数
第一个参数就是顶点数据,第二个是顶点个数,第三个是每个顶点占得字节。
同时提出不需要一次将所有的顶点全部给出,以后可以添加:
增加的顶点信息,是否重新计算AABB包围盒
对于提供顶点数据,用户不需要一直保存,看源码可知btConvexHullShape会用btAlignedObjectArray<btVector3>m_unscaledPoints;
来保存这些顶点数据。
来个示例
看上图,为什么会出现一个是三棱锥,而一个却不是呢?,其实两个形状是一样的,请看我慢慢道来。
前面的解释btConvexHullShape会根据提供的数据建立多面体,我们要牢记在心。
通过查看继承关系图,我们知道btConvexHullShape继承自btPolyhedralConvexShape,
而btPolyhedralConvexShape,提供了
可以这样理解,将提供的点式化成多面体,也就是说提供顶点后就可以调用initializePolyhedralFeatures
式化成多面体。
上图下方是按我们提供的顶点的顺序生成的结果,上方为式化后的结果
下面来看看笔者是如何加入到PhysicsWorld3D
提供两个重载函数,一个是直接将包含顶点数据的浮点数据指针作为参数, 另一个是将顶点数组作为参数。
提供第二个重载的目的就是为了从直接将raw文件的数据传入来生成多面体,还记得raw文件吧?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 转载请保留说明!友情链接: 武汉网站建设