Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 确定给定一个类变量的类的实例_Cocos2d Iphone_Box2d_Box2d Iphone - Fatal编程技术网

Cocos2d iphone 确定给定一个类变量的类的实例

Cocos2d iphone 确定给定一个类变量的类的实例,cocos2d-iphone,box2d,box2d-iphone,Cocos2d Iphone,Box2d,Box2d Iphone,嗨,伙计们,我现在被困在这里的一个应用程序工作。问题是我有一个类,它创建了许多实例,每个实例都由一个ccphysisprite和一个b2body组成。在与任何其他类中的任何其他对象碰撞期间,该特定实例应该消失。现在我已经创建了一个联系人侦听器来确定联系人,问题是我需要访问特定实例才能销毁它。充其量,我能够访问它的CCPhysicsPrite和它的标记,但不能真正获得该类的特定实例。我希望有人能帮助我。将实例作为用户数据传递到box2d正文中。当发生冲突时,您可以通过将用户数据void指针回调到其

嗨,伙计们,我现在被困在这里的一个应用程序工作。问题是我有一个类,它创建了许多实例,每个实例都由一个ccphysisprite和一个b2body组成。在与任何其他类中的任何其他对象碰撞期间,该特定实例应该消失。现在我已经创建了一个联系人侦听器来确定联系人,问题是我需要访问特定实例才能销毁它。充其量,我能够访问它的CCPhysicsPrite和它的标记,但不能真正获得该类的特定实例。我希望有人能帮助我。

将实例作为用户数据传递到box2d正文中。当发生冲突时,您可以通过将用户数据void指针回调到其正确的类型来检索实例,并相应地进行处理

// C++ example
void SomeClass::BeginContact(b2Contact* contact)
{
    b2Body* bA = contact->GetFixtureA()->GetBody();
    b2Body* bB = contact->GetFixtureB()->GetBody();
    b2MetaData* bAMeta = (b2MetaData*)bA->GetUserData();
    b2MetaData* bBMeta = (b2MetaData*)bB->GetUserData();

    delete bAMeta;
    delete bBMeta;
}
如果该实例是Objective-C实例,则可能必须使用__桥转换。 更多关于如何使用它的信息,你可以在这里找到


请记住,删除box2d实体本身必须在世界步骤之外完成,因此,如果您只是以某种方式标记要删除的实体(其中有一个标志,或者可能将其添加到名为toBeRemoved的列表中),并且在该步骤结束后,您可以在容器上迭代删除box2d实体。

显示一些代码。通常,box2d正文的userData字段有一个指向CCphysisPrite实例的指针。因此,如果您可以访问ccphysisprite对象,那么这就是您要查找的实例。除非你在找问题中没有提到的第三类?