我正在製作一款遊戲,使用LibGDX和LibGDX,它附帶的Box2D包裝器。具體來說,我的遊戲是一個2D sidescroller。與對象碰撞時,Sprite不會掉下來嗎?
我的問題是我的玩家精靈。我需要爲玩家進行非常精確的移動,所以我決定將其設置爲當玩家按下箭頭鍵時,它會調用playerBody.setLinearVelocity()
,然後當他們停止按下鍵時,它會將其線速度重置爲0.
在我的比賽中,我有引力。爲了確保在移動左,右玩家落下,我創建的方法run()
:
public void run(float x) {
playerBody.setLinearVelocity(x, playerBody.getLinearVelocity().y);
}
這工作得很好,當我的球員是自由下落。但是,當我的玩家在任何靜態物體(包括垂直牆壁)上移動時,只要我按住將箭頭貼在牆上的箭頭鍵,它們就會停止墜落。
有誰知道這可能是爲什麼?提前致謝。
而且,這裏是我的摩擦,密度,併爲playerBody恢復原狀:
friction = 0.1f
restitution = 0.01f
density = 0.4f
這將工作,除了我的精靈似乎在使用您的代碼時會變慢。可能是因爲它沒有考慮到我身體的質量?我嘗試了mass * gravity.y,但是這會讓它下降得太快。 – user2029675
你正在接受重力的價值是什麼?你的box2d世界以米或像素爲單位? –
重力是0,-30,我不確定這是米或像素,但它似乎使我的精靈下降到我想要的速度。 – user2029675