Ios Box2D碰撞检测?
我正在将b2BodyDef添加到我的场景中,如下所示:Ios Box2D碰撞检测?,ios,cocos2d-iphone,box2d,Ios,Cocos2d Iphone,Box2d,我正在将b2BodyDef添加到我的场景中,如下所示: b2BodyDef platformBodyDef; platformBodyDef.type = b2_dynamicBody; platformBodyDef.position.Set(40, 495); platformBodyDef.userData = platforms; _body = _world->CreateBody(&platformBodyDef); 我知道我应
b2BodyDef platformBodyDef;
platformBodyDef.type = b2_dynamicBody;
platformBodyDef.position.Set(40, 495);
platformBodyDef.userData = platforms;
_body = _world->CreateBody(&platformBodyDef);
我知道我应该使用联系人侦听器,但我是Box2D新手,这对我来说就像是另一种语言,那么我应该如何编写代码来查看我的CCScene中的一个CCSprite是否与此b2BodyDef冲突?这个b2BodyDef将是动画,但我现在不担心这一点。
有人知道我怎么做吗
谢谢 有一个非常好的教程介绍如何做到这一点 基本上,您要做的是创建一个contactListener,用于侦听实体之间的碰撞。确保已标记精灵,然后在联系人侦听器中加载碰撞的两个对象的精灵数据。通过检查标记,可以识别碰撞的精灵
从那里你几乎可以做任何事情,因为你有一个关于精灵,身体和世界的参考。例如,在前面的示例中,移除砖块。有一个非常好的教程介绍如何执行此操作 基本上,您要做的是创建一个contactListener,用于侦听实体之间的碰撞。确保已标记精灵,然后在联系人侦听器中加载碰撞的两个对象的精灵数据。通过检查标记,可以识别碰撞的精灵
从那里你几乎可以做任何事情,因为你有一个关于精灵,身体和世界的参考。例如,在前面的示例中,移除砖块。由于我创建了此线程,我成功地将其添加到我的项目中。但我目前面临的问题是如何停止一次冲突的多个回调。你知道这是否可行吗?很抱歉回复太晚-希望它能帮助其他人。。。在contactListener的precalc方法中,您可以取消事件。因此,您可以使用要在该方法中删除的标记来标记主体,然后取消该事件。然后当你遍历所有的物体并更新它们的位置等。。。如果精灵被标记为要删除,你就删除它。这就是我要做的,我只要在它发生碰撞时立即更改标记,然后碰撞if语句就不再为该碰撞调用!由于我制作了这个线程,我成功地将它添加到我的项目中。但我目前面临的问题是如何停止一次冲突的多个回调。你知道这是否可行吗?很抱歉回复太晚-希望它能帮助其他人。。。在contactListener的precalc方法中,您可以取消事件。因此,您可以使用要在该方法中删除的标记来标记主体,然后取消该事件。然后当你遍历所有的物体并更新它们的位置等。。。如果精灵被标记为要删除,你就删除它。这就是我要做的,我只要在它发生碰撞时立即更改标记,然后碰撞if语句就不再为该碰撞调用!