Cocos2d iphone 未设置cocos2d精灵标记

Cocos2d iphone 未设置cocos2d精灵标记,cocos2d-iphone,box2d,sprite,Cocos2d Iphone,Box2d,Sprite,我使用下面的方法来创建具有B2Body的精灵 但是我无法设置精灵标签。为什么[sprite setTag:3];工作 当我检测到与其中一个精灵发生碰撞时,会显示精灵标记为0 -(void) addNewSpriteAtPosition:(CGPoint)p { // CCLOG(@"Add sprite %0.2f x %02.f",p.x,p.y); // Define the dynamic body. //Set up a 1m squared box in

我使用下面的方法来创建具有B2Body的精灵 但是我无法设置精灵标签。为什么[sprite setTag:3];工作

当我检测到与其中一个精灵发生碰撞时,会显示精灵标记为0

     -(void) addNewSpriteAtPosition:(CGPoint)p
     {
     // CCLOG(@"Add sprite %0.2f x %02.f",p.x,p.y);
// Define the dynamic body.
//Set up a 1m squared box in the physics world
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO);
b2Body *body = world->CreateBody(&bodyDef);

// Define another box shape for our dynamic body.
b2PolygonShape dynamicBox;
dynamicBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box

// Define the dynamic body fixture.
b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox; 
fixtureDef.density = 2;
fixtureDef.friction = 0.2f;
body->CreateFixture(&fixtureDef);


CCNode *parent = [self getChildByTag:kTagParentNode];

//We have a 64x64 sprite sheet with 4 different 32x32 images.  The following code is
//just randomly picking one of the images
int idx = (CCRANDOM_0_1() > .5 ? 0:1);
int idy = (CCRANDOM_0_1() > .5 ? 0:1);
CCPhysicsSprite *sprite = [CCPhysicsSprite spriteWithTexture:spriteTexture_ rect:CGRectMake(32 * idx,32 * idy,32,32)];

[parent addChild:sprite];

[sprite setPTMRatio:PTM_RATIO];
[sprite setB2Body:body];
[sprite setPosition: ccp( p.x, p.y)];
     [sprite setTag:3];
     }

当setTag行执行时,是否会发生什么情况,或者您是否无法通过标记检索精灵?如果是后者,请发布代码,说明如何通过标签访问精灵。是的,我的问题是当我稍后尝试访问它时。我正在检查碰撞事件中的标记,如下所示:b2Body*bodyB=contact.fixtureB->GetBody();CCSprite*spriteB=(CCSprite*)bodyB->GetUserData();NSLog(@“标记:%d”,spriteB.tag);设置后立即检查标签。我相信这是正确的。