【发布时间】:2013-12-21 18:04:24
【问题描述】:
下午好,使用 Xcode / Spritekit / OSX 10.9.1
在我试图扩展的教程中,我设置了 3 种方法来召唤心灵。 心在场景中显示如下:
-(SKSpriteNode*) healthContainer1 {
SKSpriteNode *heart1 = [SKSpriteNode spriteNodeWithImageNamed:@"heartfull"];
heart1.name = @"healthContainer1";
heart1.position = CGPointMake(CGRectGetMinX(self.frame) + 25, CGRectGetMaxY(self.frame) - 30);
return heart1;
if (hitCount == 3) {
[self removeFromParent];
}
}
-(SKSpriteNode*) healthContainer2 {
SKSpriteNode *heart2 = [SKSpriteNode spriteNodeWithImageNamed:@"heartfull"];
heart2.name = @"healthContainer2";
heart2.position = CGPointMake(CGRectGetMinX(self.frame) + 50, CGRectGetMaxY(self.frame) - 30);
return heart2;
if (hitCount == 2) {
[self removeFromParent];
}
}
-(SKSpriteNode*) healthContainer3 {
SKSpriteNode *heart3 = [SKSpriteNode spriteNodeWithImageNamed:@"heartfull"];
heart3.name = @"healthContainer3";
heart3.position = CGPointMake(CGRectGetMinX(self.frame) + 75, CGRectGetMaxY(self.frame) - 30);
return heart3;
if (hitCount == 1) {
[self removeFromParent];
}
}
心脏容器在initWithSize:方法中被调用
[self addChild:[self heartContainer1]];
[self addChild:[self heartContainer2]];
[self addChild:[self heartContainer3]];
我的hitCount 是在头文件中设置的int,我使用以下方法以及更新方法的第二个发布部分来检测损坏。当基于hitCount int 造成损坏时,我试图让heartContainer 自行移除。
-(void) doDamage:(SKSpriteNode*)character {
isDamaged = YES;
hitCount ++;
}
if ( [character intersectsNode:node] && isDamaged == NO) {
[self doDamage:character];
NSLog(@"Intersection occured");
}
抱歉,如果多个heartContainer 方法上显示的代码过多,我只是想我可以检查heartContainer 方法本身中的int,然后在满足条件时将其删除。我还尝试在调用它们后立即将 if 语句放入 initWithSize: 方法中,但这也不起作用。
【问题讨论】:
标签: objective-c ios7 int sprite-kit sknode