如何确保在libgdx box2d中动态主体没有应用重力

时间:2015-05-31 01:22:05

标签: java libgdx box2d

我在我制作的游戏中有一个跟随我的玩家的身体,玩家属于Actor(scene2D)。在他的重写行为方法中,他使用libgdx输入来移动。例如,(pseudo)if(gdxInput.keys(keys.up)){applyForceToCenter(VElocity)xCoor = body.x yCoor = body.y

如何确保身体不会在整个地方滑动?世界的重力为0,0所以如果我点击向上箭头,玩家将永远不会停止,所以在我的巨大的if else if if语句输入中我把elseVelocity = 0这有效但是如果玩家持有右箭头键然后按住向上箭头键,玩家向右移动,然后向上移动,就像他在冰上滑行一样。请告诉我如何通常关闭播放器的所有重力。我不能只设置身体的位置,因为我使用身体作为一种碰撞方式并设置身体的位置是为了关闭碰撞。

2 个答案:

答案 0 :(得分:0)

你的球员身上有任何减震设置吗?

playerBody.SetLinearDamping(0.2f);

如果你没有向你的玩家身上施加任何东西,这会将位置力减少到0。

答案 1 :(得分:0)

只要你想停下来,你就会将速度设置为0,例如

  Order.joins(cart: { cart_items: :product })
      .group("products.name")
      .select("products.name as product_name", "SUM(cart_items.amount) as cart_items_amount")
      .map { |order| { name: order.product_name, amount: order.cart_items_amount } }

所以一旦你停止你的速度将等于0!