0

只是主要问题,因为在 box2d 中对象会自动下降到底部,所以我想创建我的对象飞行并保持相同的高度。

这是我从某个网络获得的代码:

gravityOffset.Multiply(-body.GetMass());
body.ApplyForce(gravityOffset, body.GetWorldCenter());

我的对象是飞,但它飞走了,永远不会像火箭一样回来。

我修改了这样的代码:

gravityOffset.x = 0;
gravityOffset.y = 0;
body.ApplyForce(gravityOffset, body.GetWorldCenter());

但它仍然缓慢地飞起来..

当飞行时间结束时,我想让它再次下降。任何人都可以帮忙吗?

4

1 回答 1

0

如果您只想向空中发射一枚火箭并让它落下,那么:

body.ApplyImpulse(velocity,body.GetWorldCenter());

但是,如果您想要对火箭进行更多控制,而不仅仅是发射后忘记,那么它会变得有点困难。

在这种情况下,我可能会使用一些转向行为并使用 seek 函数让它朝着一个向量移动(然后你可以继续把这个向量移动到任何地方让火箭跟随它)。

于 2012-04-16T05:44:37.487 回答