我正在制作一个在世界上显示25个级别的精灵套件游戏。我想要做的就是锁定每个级别,以便我在上面添加一个locked.png图像。级别图标。当用户达到该级别时,我想删除锁定的图标,以便用户可以访问该级别。
问题是我已经将锁和级别号码添加为子级,因此当我从removeAllChildren
的图标转到_level2
时,它也会删除级别数。
有没有办法从spriteNode中删除一个孩子?
这是代码:
//Lock
SKSpriteNode *locked = [SKSpriteNode spriteNodeWithImageNamed:@"Locked.png"];
locked.position = CGPointMake(0, 0);
locked.zPosition = 2.0;
locked.size = CGSizeMake(20*DoubleIfIpad, 20*DoubleIfIpad);
locked.color = [UIColor colorWithRed:255/255. green:156/255. blue:0/255. alpha:1.0];
locked.colorBlendFactor = 1.0;
_level2 = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"crate.png"] size:CGSizeMake(40*DoubleIfIpad, 40*DoubleIfIpad)];
_level2.position = CGPointMake(CGRectGetMidX(self.frame)-50*DoubleIfIpad, CGRectGetMidY(self.frame)+50*DoubleIfIpad);
_level2.name = @"level2";
SKLabelNode *level2txt = [SKLabelNode labelNodeWithFontNamed:@"DIN Condensed"];
level2txt.position = CGPointMake(0, -8*DoubleIfIpad);
level2txt.fontColor = [SKColor whiteColor];
level2txt.fontSize = 20*DoubleIfIpad;
level2txt.text = @"2";
level2txt.name = @"level2";
[_level2 addChild:locked];
[_level2 addChild:level2txt];
[_levels addObject:_level2];
[self addChild:_level2];
我已经设置了以单独的方法解锁关卡:
if (highLevel >= 2) {
[_level2 removeAllChildren];
}
highLevel
是NSInteger。
答案 0 :(得分:2)
node
是您要删除的节点,scene
是node
的父节点。
// when you create it
node.name = @"RemoveThisGuy"
[scene addChild:node];
// when you want to delete it
[[scene childNodeWithName:@"RemoveThisGuy"] removeFromParent];