study_cocos2dx 2014-08-23 07:09 采纳率: 0%
浏览 3069

关于Box2d-自定义重力

下面是我在网上找的关于Box2d-自定义重力的设置教程---

cocos2dx box2d 自定义/重置重力

Box2D中的Dynamics包下有一个b2Island类,类中有一个Solve方法,这方法通过gravity形参对刚体进行重力模拟,代码如下:

b.m_linearVelocity.x += step.dt * (gravity.x + b.m_invMass * b.m_force.x);

b.m_linearVelocity.y += step.dt * (gravity.y + b.m_invMass * b.m_force.y);

b.m_angularVelocity += step.dt * b.m_invI * b.m_torque;

所谓重置重力,就是在这里动手脚了。要怎么做呢?把这个gravity形参改成我们想要的重力,比如可以像下面的代码,设置为0.

        gravity = new b2Vec2(0, 0);

        b.m_linearVelocity.x += step.dt * (gravity.x + b.m_invMass * b.m_force.x);

        b.m_linearVelocity.y += step.dt * (gravity.y + b.m_invMass * b.m_force.y);

        b.m_angularVelocity += step.dt * b.m_invI * b.m_torque;

或者我们用了一个更便于重用的方法,在b2Body类添加一个b2Vec2类型的公共属性m_customGravity,然后在b2Island.Solve()方法中,判断是否设置了刚体的m_customGravity属性,如果有,则用m_customGravity进行重力模拟计算。然后我们在创建刚体时,只要设置一下m_customGravity属性就可以轻松重置重力了。

        //2012-7-27

        //added by ladeng6666

        //如果刚体有自定义m_customGravity属性,则用其进行重力模拟计算

        if (b.m_customGravity != null) {

            LDgravity = b.m_customGravity;

        }else {

            LDgravity = gravity;

        }

        //用更新后的LDgravity属性进行重力模拟计算

        b.m_linearVelocity.x += step.dt * (LDgravity.x + b.m_invMass * b.m_force.x);

        b.m_linearVelocity.y += step.dt * (LDgravity.y + b.m_invMass * b.m_force.y);

        b.m_angularVelocity += step.dt * b.m_invI * b.m_torque;

请问在"或者我们用了一个更便于重用的方法,在b2Body类添加一个b2Vec2类型的公共属性"之后的操作..

应该怎么完成,语句应该怎么添加?b2Body类跟b2Island我都找到了已经.但是具体修改.我试了一下都有错误

教程原文地址:
http://www.ladeng6666.com/blog/2012/09/06/box2d%E8%87%AA%E5%AE%9A%E4%B9%89%E9%87%8D%E5%8A%9B/

我已经在b2Body.h中添加

CSDN移动问答
我添加有没有错误呢?

还是应该放在这里呢?

CSDN移动问答

有人说原教程的是AS的代码..会不会有影响呢?

  • 写回答

1条回答

  • 拉登Dony 2014-09-06 02:55
    关注

    我时那篇教程的作者,你的贴图是盗链,看不到原图,你可以微博@ladeng6666,我看看能否帮的上你!

    评论

报告相同问题?

悬赏问题

  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题