重置-关于Box2d-自定义重力

问题描述

关于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中添加


我添加有没有错误呢?

还是应该放在这里呢?

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

解决方案

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

时间: 2024-11-03 21:14:49

重置-关于Box2d-自定义重力的相关文章

Win7系统Internet Explorer已停止工作怎么办

  方法一:重置IE默认设置 1.由于第三方插件导致IE崩溃,那么我们可以通过重置修复IE默认设置即可解决.打开IE浏览器---找到工具---Internet 选项. 2.打开Internet 选项之后,找到"高级"----"还原高级设置"如箭头所示,选择"重置". 3.然后点击"删除个性化设置",选择"重置". 4.点击"重置"之后,IE会删除重置设置把自定义的设置和插件会禁止停用.

1月13日阿里云ECS、SLB和RDS升级公告

ECS升级公告: 尊敬的阿里云用户: 您好,为了更好的优化ECS服务,阿里云ECS服务将于1月13日23:00-06:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行.调用ECS API 以上受影响的操作,统一返回错误码: ServiceUnava

阿里云ECS、SLB、OSS、OCS服务升级公告

尊敬的阿里云用户: 您好,为了更好的优化后端系统,阿里云ECS服务.SLB服务.OSS服务.OCS服务将进行升级 ,升级内容如下: 一.ECS服务将分别于8月19日.8月20日.8月21日.8月26日的23:00-5:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.启动.停止.重启.更换操作系统,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务

怎么编写javascript查询和删除按钮或者事件的操作啊!!!

问题描述 :cry: :cry: 小弟比较菜,最近在学习javascript.但是遇到了一些问题不知道如何解答,求大神们看看!!!!在html中输入输入姓名,email,电话等这样基本的信息,然后点提交后会在下面显示出刚才的输入结果,然后后面有按钮可以选择删除掉这条信息.有一个查找按钮,文本框里输入要查找的信息,如果找到直接显示出来,如果没有alert提示查找失败.这些在一个页面上实现就行.谢谢了!!!!! :cry: :cry: :cry: 解决方案 <%@ page contentType=

11月阿里云ECS/SLB产品升级公告

尊敬的阿里云用户: 您好,为了提供更优质的服务,以下ECS.SLB.采云间将在11月份进行升级,升级详情如下: 一.阿里云ECS将于11月18日23:00-6:00,11月25日23:00-5:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行. 3

阿里云ECS、SLB升级公告

尊敬的阿里云用户: 您好,为了更好的优化后端系统,阿里云ECS.SLB将进行升级,升级详情如下: 1.阿里云云服务器(ECS)将于9月2日.9月9日.9月23日23:00-5:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.启动.停止.重启.更换操作系统,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行. 3)9月3日北京集群:9月1

10月14日ECS/SLB/ODPS升级公告

尊敬的阿里云用户: 您好,为了更好的优化后端系统,ECS/SLB/ODPS将于10月14日进行系统升级,升级期间影响如下: 1.10月14日23:00-5:00将对云服务器(ECS)进行系统升级,升级期间: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器: 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.更换操作系统,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行: 3)10月15日青岛.香港集

10月28日晚阿里云ECS/SLB升级公告

尊敬的阿里云用户: 您好,为了更好的优化后端系统,阿里云ECS/SLB将于10月28日晚至10月29日凌晨进行系统升级,升级详情如下: 一.ECS将于10月28日23:00-10月29日3:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行.调用EC

1月20日ECS升级通知

尊敬的阿里云用户: 您好,为了更好的优化ECS和VPC服务,阿里云ECS和VPC服务将于1月20日23:00-01:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器和独立云磁盘,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行.调用ECS API 以上受影响的操作,统一返回错误码: Service