2014-09-23 3 views
2

저는 cocos2D를 처음 사용합니다. CCSprite에 대한 태그를 설정하고 싶지만이 cococs2D 버전 3 오류가 표시되는 동안 나는 Stackoverflow [set tag] 속성에 대한 답변을 보았습니다 만 cocos2d 버전 3에서는 양식이 작동하지 않습니다. 필자는 두 가지 몬스터를 만들었으며 충돌 한 대표자가 어떤 몬스터와 충돌했는지 알고 싶습니다. 몬스터를 어떻게 만드는지 보여 드리겠습니다.cocos2D에서 CCSprite 태그를 설정하는 방법

CCSprite *monster = [CCSprite spriteWithImageNamed:@"xyz.png"]; 
int minY = monster.contentSize.height/2; 
int maxY = self.contentSize.height - monster.contentSize.height/2; 
int rangeY = maxY - minY; 
int randomY = (arc4random() % rangeY) + minY; 

// 2 
monster.position = CGPointMake(self.contentSize.width + monster.contentSize.width/2, randomY); 
monster.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, monster.contentSize} cornerRadius:0]; 
monster.physicsBody.collisionGroup = @"monsterGroup"; 
monster.physicsBody.collisionType = @"monsterCollision"; 
[_physicsWorld addChild:monster z:1]; 

// 3 
int minDuration = 2.0; 
int maxDuration = 4.0; 
int rangeDuration = maxDuration - minDuration; 
int randomDuration = (arc4random() % rangeDuration) + minDuration; 

// 4 
CCAction *actionMove = [CCActionMoveTo actionWithDuration:randomDuration position:CGPointMake(-monster.contentSize.width/2, randomY)]; 
CCAction *actionRemove = [CCActionRemove action]; 
[monster runAction:[CCActionSequence actionWithArray:@[actionMove,actionRemove]]]; 




- (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair monsterCollision:(CCNode *)monster projectileCollision:(CCNode *)projectile 
{ 


    [monster removeFromParent]; 
    [projectile removeFromParent]; 

    score=score+1; 

    return YES; 
} 

여기에서 태그 또는 이미지로 CCsprite를 가져오고 싶습니다. 어떻게 충돌 대리자에서 CCsprite를 인식 할 수 있는지 잘 모르겠습니다.

+2

태그로 그것을 얻을 것입니다 버전 3에서는 더 이상 사용되지 않습니다. 대신 name 속성을 사용하십시오 (모든 노드에서 사용 가능). getChildByName, removeChildByName ... 등등을 할 수 있습니다. – YvesLeBorg

답변

1

는 잘 모르겠어요하지만 난처럼 추가 할 때 스프라이트에 대한 이름 속성을 설정할 수 있습니다 생각 :

[self addChild:(CCNode *) z:(NSInteger) name:(NSString *)]

하고 나중에

getChildByName

관련 문제