Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript的Box2d:SetLinearVelocity()不是';行不通_Javascript_Box2d - Fatal编程技术网

JavaScript的Box2d:SetLinearVelocity()不是';行不通

JavaScript的Box2d:SetLinearVelocity()不是';行不通,javascript,box2d,Javascript,Box2d,首先,这是我在这里写的第一篇关于StackOverflow的文章,实际上我是编程新手,所以如果我说错了什么,我很抱歉 我尝试了又尝试了,我想模拟一个静止在空中的物体,为此我使用了SetLinearVelocity(新的b2Vec2(0,0)) 正如我在其他帖子中读到的,重力向量似乎很重要:它是一个b2Vec2(0,30)我的时间步长为1/30秒 处理该特定主体的机械装置的代码位如下所示: this.clocktick = function(deltaT) { this.body.SetL

首先,这是我在这里写的第一篇关于StackOverflow的文章,实际上我是编程新手,所以如果我说错了什么,我很抱歉

我尝试了又尝试了,我想模拟一个静止在空中的物体,为此我使用了
SetLinearVelocity(新的b2Vec2(0,0))

正如我在其他帖子中读到的,重力向量似乎很重要:它是一个
b2Vec2(0,30)我的时间步长为1/30秒

处理该特定主体的机械装置的代码位如下所示:

this.clocktick = function(deltaT) {
    this.body.SetLinearVelocity(new b2Vec2(0, 0));

    if(this.body.GetLinearVelocity().y != 15){
        console.debug(this.body.GetLinearVelocity().y);
    }
}
我觉得有趣的是,主体总是在下降,而且我已经遇到了一种情况,即使它在下降,调试也会返回一个0的值

我只是想听听解决方案或其他建议来模拟我想要模拟的东西


Thx

您需要施加一个力来抵消重力,而不是设置速度。如果你只是设定速度,重力仍然可以在每一步都把它往下推一点点。 力必须与重力作用的力相同,因此应考虑重力矢量和物体质量:

body.ApplyForce( body.GetMass() * -world.GetGravity(), body.GetWorldCenter() );
。。。您需要在每个时间步之前执行此操作