移除主体上的夹具(cocos2d/box2d)



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

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

我应该如何执行此操作?我应该完全移除身体并在触摸结束时重新创建它吗?任何想法或帮助表示赞赏。谢谢

我相信

您无法在现有主体中添加/删除夹具。实现所需目标的方法是禁用正文(将其活动状态设置为 false(。您还可以更改它的碰撞过滤器/蒙版,使其不会与某些游戏对象发生冲突,但仍会与世界边界发生冲突。

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

  • 销毁/重新创建通过触摸移动的现有主体上位置 0、0 处的夹具
  • 或在触摸位置破坏/重建整个身体

我相信管理赛程对性能更好。

最新更新