关于Cocos2d-x中多边形物理刚体的设置
1.如果想要设置某个物体有多边形的刚体,这样可以更精确地进行碰撞检测,可以用以下的方法
auto hero = PlaneHero::create();
addChild(hero, 0, HERO_TAG);
hero->setPosition(Vec2(winSize.width / 2, hero->getContentSize().height / 2 + 10));
//auto herobody = PhysicsBody::createBox(hero->getContentSize()); //这样设置不太精准
auto herobody = PhysicsBody::create();
Vec2 verts[] = {Vec2(0, 55), Vec2(50, -30), Vec2(-50, -30)}; //根据点组成一个多边形,这样设置的PhysicsBody是一个三角形,这里面的点的先后顺序必须可以连成一条线,不能随便写的,不然会停止运行
//herobody->addShape(PhysicsShapeEdgePolygon::create(verts, 3));(如果是边界的话用这句)
herobody->addShape(PhysicsShapePolygon::create(verts, 3));(如果是精灵的话用这句)
herobody->setCollisionBitmask(0x0); //不进行碰撞模拟
herobody->setContactTestBitmask(HERO_CONTACTMASKBIT);
herobody->setPositionOffset(Vec2(30, 0));(设置刚体和精灵节点绑定的相对位置,可以让它不总是在精灵的中心对齐)
hero->setPhysicsBody(herobody);
2.关于PhysicsShapeEdgePolygon函数
static PhysicsShapeEdgePolygon* create ( const Vec2 * points , int count , const PhysicsMaterial & material = PHYSICSSHAPE_MATERIAL_DEFAULT , float border = 1 )
points 多边形顶点数组。
count 多边形顶点数量。
material 物理材质PhysicsMaterial对象,默认值是PHYSICSSHAPE_MATERIAL_DEFAULT。
border 这是多边形的边框宽度。
例子
Vec2 verts[] = {Vec2(0, 55), Vec2(50, -30), Vec2(-50, -30)}; //根据点组成一个多边形
herobody->addShape(PhysicsShapeEdgePolygon::create(verts, 3));
关于Cocos2d-x中多边形物理刚体的设置的更多相关文章
- cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界
Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的封装让开发人员能够更快更好的将物理引擎的机制加入�到自己的游戏中,简化的设计是从2. ...
- 实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D
我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触 ...
- box2d中的物理世界
box2d中的物理世界,即b2World类就是一个包含了各种物体(body,物理体,或者叫刚体),固定附着物(fixture,形状与物理体的绑定物)以及各种约束体(比如关节),并使其在当中完成各种交互 ...
- cocos2d-js中Chipmunk物理引擎相关(1)
近期看些cocos2d-js的东西.用到当中的Chipmunk的一些东西.由于相关的资料也不是非常具体,所以看到一些东西实用就记录下来. 1. chipmunk是cocos2d的一个一个物理引擎.用来 ...
- cocos2dx 3.2中的物理引擎初探(一)
cocos2dx在设计之初就集成了两套物理引擎,它们是box2d和chipmunk.我目前使用的是最新版的cocos2dx 3.2.引擎中默认使用的是chipmunk,如果想要改使用box2d的话,需 ...
- 喵的Unity游戏开发之路 - 推球:游戏中的物理
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
- 在powerdesigner中创建物理数据模型
物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...
- iOS中的物理引擎
目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的.但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架.这可以让开发人员 ...
- 如何在cocos2d项目中enable ARC
如何在cocos2d项目中enable ARC 基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. cocos2d是ios app开发中 ...
随机推荐
- PLSQL_数据结构类型的解析(概念)
2014-06-02 Created By BaoXinjian
- PopupWindow的简单使用(结合RecyclerView)
Android弹窗: 在Android中弹出式菜单(以下称弹窗)是使用十分广泛一种菜单呈现的方式,弹窗为用户交互提供了便利.关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindo ...
- Android 自定义属性动画&Camera动画
摘要: Android 自定义属性动画&Camera动画 1.相关知识点 对于Androi的帧动画,可以制作gif图片,有时为了能够动态的生成帧动画,就得需要使用代码构建了 Animati ...
- powerdesigner基础操作
一.建表 1. 打开PowerDesigner,点击File->New 2. 选择Conceptual Data Model,并修改Model name. 3. ...
- Linux内存管理Swap和Buffer Cache机制
Linux内存管理Swap和Buffer Cache机制 一个完整的Linux系统主要有存储管理,内存管理,文件系统和进程管理等几方面组成,贴出一些以前学习过的一个很好的文章.与大家共享!以下主要说明 ...
- Mac 下的矢量图设计工具
Mac 下的矢量图设计工具 一图胜千言.一张清晰的示意图无论对于系统设计,流程梳理,还是其他的方方面面,都非常重要. 曾经亲见一位老同事把 FreeHand 这个矢量绘图工具用得出神入化,并且非常成功 ...
- HDU 1260 Tickets (动规)
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- NGUI ScrollView出屏幕再回来坐标混乱解决
主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true);
- 微信H5支付.NET版本备忘
微信H5支付.NET版本备忘
- POJ 2553 The Bottom of Graph 强连通图题解
Description We will use the following (standard) definitions from graph theory. Let V be a nonempty ...