4、wxWidget之Box2D抵消重力

void Simple::OnTimer(wxCommandEvent& event)
{
    world->Step(timeStep, velocityIterations, positionIterations);
    for (b2Body *b = world->GetBodyList(); b; b=b->GetNext())
    {
        if(b->GetType() ==b2BodyType::b2_dynamicBody)
        {
            b2Fixture* fixture = b->GetFixtureList();
            b2Shape* shape = b->GetFixtureList()->GetShape();

            //抵消重力
            switch(shape->GetType()){
            case b2Shape::e_circle:
                //抵消圆球的重力。重力抵消后,圆球不会下降
                printf("Mass=%4.2f \n",b->GetMass());
                b->ApplyForce(-(b->GetMass() * world->GetGravity()),b->GetWorldCenter(),true);
                break;
            case b2Shape::e_polygon:
                //抵消重力后,原地旋转
                b->SetGravityScale(0);//如果0改成-1,则向上漂

            }

        }
    }

    Refresh();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值