我正在开发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“在”屏幕前的其余部分之前出现(你可以看到它)在调试上)
感谢。
答案 0 :(得分:2)
你的方法没问题。我还建议设置你身体的最大速度:
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);