当我尝试做applyForce或applyLinearImpulse时,我只能得到一个缓慢(但稳定)的速度,不管我加了多少力。是否有一个最大的速度是适用和限制我的身体走得更快?我想要有子弹射击的效果。
我已经检查了一些教程,但是速度看起来还是太慢了,即使我设置了body.linearVelocity = Vector2(5000, -5000);,它的移动速度也很慢。
@override
bool onTapDown(TapDownInfo info) {
body.applyLinearImpulse(Vector2(5, -1) * 1000000000);
return false;
}重力为零,这是身体数据:
@override
Body createBody() {
final Shape shape = CircleShape()..radius = 30;
final bodyDef = BodyDef(
userData: this,
angularDamping: 0,
position: Vector2(100, 500),
type: BodyType.dynamic,
);
final fixtureDef = FixtureDef(shape)
..shape = shape
..restitution = 1
..density = 0.0001
..friction = 0;
return world.createBody(bodyDef)..createFixture(fixtureDef);
}谢谢!
发布于 2022-10-10 18:13:57
这是因为您已经将缩放级别设置为1,而不是默认的10。这使得身体的速度非常快,所以你应该让身体变小,然后放大它们。这不仅是Forge2D特有的,而且适用于box2d和box2d本身的几乎所有端口。您可以阅读更多关于它的这里。
https://stackoverflow.com/questions/74008597
复制相似问题