0

我有几个球在屏幕上弹跳,每个都有自己的身体,可以相互弹跳。用户可以拿起一个球并在屏幕上拖动它。

我想“杀死”选定的球,以便只要用户触摸它,它就会暂时从空间中移除。所以其他球会弹跳通过它,就好像它不存在一样。释放后,球将恢复其物理特性并可以继续弹跳。

我应该如何执行这个?我应该完全移除身体并在 touchEnded 时重新创建它吗?任何想法或帮助表示赞赏。谢谢

4

2 回答 2

0

我相信您不能向现有机构添加/删除固定装置。实现您想要的方法是禁用主体(将其活动状态设置为 false)。您还可以更改它的碰撞过滤器/遮罩,使其不会与某些游戏对象发生碰撞,但仍会与世界边界发生碰撞。

于 2012-05-21T08:59:42.670 回答
0

您可以将 Box2D 主体包装在一个自定义类中,该类将保留定义(bodyDef 和 fixtureDef 是可重用的)然后您可以:

  • 销毁/重新创建位置 0, 0 上由触摸移动的现有主体上的夹具
  • 或在触摸位置销毁/重建整个身体

我相信管理固定装置对性能更好。

于 2012-08-29T15:52:49.100 回答