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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题