物理引擎Box2D之世界

世界代表了一个遵守蓝紫物理定律的空间。世界的定义结构如下(在Box2D/Dynamics/b2World.h里面):

class b2World
{
public:
    /// 初始化函数.
    b2World(const b2Vec2& gravity);

    /// 析构函数,所有的物理对象被销毁,所有的内存被释放
    ~b2World();

    /// 注册一个碰撞检测之前的过滤器
    void SetContactFilter(b2ContactFilter* filter);

    /// 注册一个碰撞检测事件的监听器
    void SetContactListener(b2ContactListener* listener);

    ...

    /// 创建一个刚体
    b2Body* CreateBody(const b2BodyDef* def);

    /// 销毁一个刚体
    void DestroyBody(b2Body* body);

    /// 创建一个链接
    b2Joint* CreateJoint(const b2JointDef* def);

    /// 销毁一个链接
    void DestroyJoint(b2Joint* joint);

    ....

    /// 获取刚体列表
    b2Body* GetBodyList();
    const b2Body* GetBodyList() const;

    /// 获取链接列表
    b2Joint* GetJointList();
    const b2Joint* GetJointList() const;

    /// 获取碰撞检测列表
    b2Contact* GetContactList();
    const b2Contact* GetContactList() const;

    ...

    ///设置重力向量
    void SetGravity(const b2Vec2& gravity);

    ///获取重力向量
    b2Vec2 GetGravity() const;

    ///获取世界是否被锁定
    bool IsLocked() const;

    ...
    ...
    ...
}

创建世界时需要完成两个步骤,一是生成一个重力向量,二是根据重力向量生成世界对象,示例代码如下:

//生成一个重力向量
b2Vec2 gravity;
gravity.Set(0.0f,-10.0f);

//根据重力向量生成世界对象
b2World *world=new b2World(gravity,true);

 
版权信息:原创文章: 咸蛋博客
本文标题: 物理引擎Box2D之世界
本文链接: http://xiandanboke.com.cn/?p=799转载请注明转自 咸蛋博客
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值