gpt4 book ai didi

javascript - 用于 JavaScript 的 Box2d : SetLinearVelocity() isn't working

转载 作者:行者123 更新时间:2023-11-30 18:23:13 25 4
gpt4 key购买 nike

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

我试了又试让这项工作成功 - 我想模拟一个静止在空中的物体,为此我使用 SetLinearVelocity(new b2Vec2(0, 0)) .

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

处理特定 body 机制的代码如下:

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

if(this.body.GetLinearVelocity().y != 15){
console.debug(this.body.GetLinearVelocity().y);
}
}

我发现 body 总是下降很有趣,我已经遇到过这样的情况,即使它在下降,调试返回值 0。

我只是想听听解决方案或其他建议来模拟我打算模拟的内容。

谢谢

最佳答案

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

body.ApplyForce( body.GetMass() * -world.GetGravity(), body.GetWorldCenter() );

...并且您需要在每个时间步之前执行此操作。

关于javascript - 用于 JavaScript 的 Box2d : SetLinearVelocity() isn't working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com