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

时间:2012-05-20 14:28:08

标签: iphone ios xcode cocos2d-iphone

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

我想“杀死”选定的球,以便只要用户触及它就暂时将其从空间中移除。所以其他的球会像它不在那里一样反弹。释放后,球将恢复其物理属性,并可以恢复被反弹。

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

2 个答案:

答案 0 :(得分:0)

我相信你不能在现有的身体上添加/删除灯具。实现所需的方法是禁用正文(将其活动状态设置为false)。您还可以更改它的碰撞过滤器/蒙版,以便它不会与某些游戏对象发生碰撞,但仍然会与世界边界发生碰撞。

答案 1 :(得分:0)

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

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

我认为管理灯具对性能更有利。