Box2d学习笔记六:b2Body所用的属性和物理属性

本文详细介绍了Box2D物理引擎中刚体及其物理属性的设置方法。包括如何使用b2BodyDef定义刚体的位置、角度、速度等属性,以及利用b2FixtureDef配置摩擦、恢复系数和密度等物理特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天我们学习了b2Body的属性和物理属性。刚体的属性封装在一个叫b2BodyDef的类中,注意,在box2d中凡是以def结尾的类都是某某属性的封装类。打开API文档:


b2BodyDef:

b2BodyType  type //刚体的类型,动态、静态
b2Vec2  position
float32  angle //角度
  The world angle of the body in radians. 
b2Vec2  linearVelocity //线性速度
  The linear velocity of the body's origin in world co-ordinates. 
float32  angularVelocity //角速度
  The angular velocity of the body. 
float32  linearDamping //线性阻尼
float32  angularDamping //角度阻尼
bool  allowSleep //是否能睡眠
bool  awake //是否在唤醒状态
  Is this body initially awake or sleeping? 
bool  fixedRotation //固定旋转,就不能自转了
  Should this body be prevented from rotating? Useful for characters. 
bool  bullet //刚体是否为子弹类型,当两个速度很快的刚体发生碰撞的时候,会出现穿透现象,如果设置该属性就可以保证正确的发生碰撞
bool  active //是否激活状态,注意与sleep分开,sleep是照样发生物理模拟,而如果active为false,则刚体不参与任何物理模拟
  Does this body start out active? 
void *  userData //用户数据
  Use this to store application specific body data. 
float32  gravityScale //几倍重力
  Scale the gravity applied to this body. 

大家有木有发觉这些属性和物理沾不上边呢?是的,这些并不是刚体的物理属性。如果看过前几篇就知道,物理属性是通过框架附加的,ok


b2FixtureDef

const b2Shape *  shape //框架的形状
void *  userData
  Use this to store application specific fixture data. 
float32  friction //摩擦系数
  The friction coefficient, usually in the range [0,1]. 
float32  restitution //恢复系数
  The restitution (elasticity) usually in the range [0,1]. 
float32  density //密度
  The density, usually in kg/m^2. 
bool  isSensor //是否是感应器
b2Filter  filter //筛选器
  Contact filtering data. 

有了上面这些属性,就可以完美的模拟刚体的物理运动了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值