【问题标题】:How to prevent body from moving after collision [Box2D] [AndEngine]碰撞后如何防止身体移动 [Box2D] [AndEngine]
【发布时间】:2014-06-28 14:06:26
【问题描述】:

我正在使用 AndEngine 和 Box2D 制作游戏。我正在制作一个乒乓球风格的足球游戏,我希望守门员在球与它碰撞时表现得像一个静止的身体。当它们碰撞时,keper 也会移动,这使我的游戏无法玩。我曾尝试使用contactListener 做某事,但它不起作用。

【问题讨论】:

  • 是keper体型Kinematic?
  • 它的体型是动态的

标签: java android box2d andengine


【解决方案1】:

设置keeper的body type为Kinematic

运动学体是一种混合体,不受力和 像静态物体一样碰撞,但可以以线速度移动 像一个动态的身体。

你可以移动它,但如果它被球击中它就不会移动。

【讨论】:

  • 我忘了说守门员必须保持在两个球门柱之间。所以门将必须与那些帖子发生冲突
  • 你不能用 X/Y 位置来限制吗?
  • 我试过了,但是没有用。太奇怪了:/我找到了解决方案,但还不够好。我设置了摩擦值大的摩擦接头。所以它在碰撞后停止移动,但它移动了一点。当我想自己移动守门员时,我会在按下键的同时继续设置速度但是正如我所说,它在碰撞后会移动一点,所以这不是一个完美的解决方案
  • 我假设球门柱不改变位置。为什么限制守门员的X/Y位置很难?
  • 我不知道,但我尝试了该代码,但如果没有帮助: if( post[0].getX() keper.getX() ) //移动守门员
【解决方案2】:

你为什么不做keper body type static?这样它就会有无限大的质量并且不会移动, read more here.

【讨论】:

  • 我想让它移动来接球。你不能移动静态物体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
相关资源
最近更新 更多