繁体   English   中英

LibGDX:移动然后立即停止box2d

[英]LibGDX: move and then stop box2d immediately

我正在LibGDX中的一个项目上。 这是一个2D平台游戏。 你可以说这就像超级马里奥。

所以这就是我将播放器向右移动的方式:

if (Gdx.input.isKeyPressed(Input.Keys.RIGHT))
    player.b2body.applyLinearImpulse(new Vector2(0.1f, 0), player.b2body.getWorldCenter(), true);
}

当我离开钥匙时,播放器仍在移动。 (我认为他的身体上仍然有“线性冲动”力)。

我该如何停止?

我的问题可能很简单:在按住键的同时,在LibGDX上沿一个方向移动实体的最佳方法是什么? 当我离开钥匙时,播放器立即停止。

bdw-我尝试过“ setTransform”,并且当身体接触其他对象时会出现问题-而且sahpe出现在屏幕上其余游戏的“之前”(您可以在调试时看到它)

谢谢。

您的方法还可以。 我还建议您设置身体的最大速度:

if (Gdx.input.isKeyPressed(Input.Keys.RIGHT) && player.b2body.getLinearVelocity().x < maxSpeed)
    player.b2body.applyLinearImpulse(new Vector2(0.1f, 0), player.b2body.getWorldCenter(), true);
}

通过使用setLinearVelocity方法立即停止身体。

player.b2body.setLinearVelocity(0f, 0f);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM