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