我制作了一个小型原型游戏,到目前为止一切正常,碰撞也是如此。现在我想优化一些东西。我有不同的属性爬行,我想把它们放在一个数组中。但是我不知道如何检查数组中的对象是否存在冲突,因为命令期待我想要一个SKnode。在这里,我定义了creeps和数组:
SKSpriteNokde *creep1 = [SKSpriteNode spriteNodeWithTexture:_creepTexture1];
[creep1 setScale:1];
creep1.position = CGPointMake( 10, y )
creep1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:creep1.frame.size];
creep1.physicsBody.dynamic = NO;
[CreepPair addChild:creep1];
SKSpriteNokde *creep2 = [SKSpriteNode spriteNodeWithTexture:_creepTexture2];
[creep2 setScale:2];
creep2.position = CGPointMake( 50, y + creep1.size.height);
creep2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:creep2.frame.size];
creep2.physicsBody.dynamic = NO;
[CreepPair addChild:creep2];
..
SKSpriteNode *Level1 = [NSArray arrayWithObjects:creep1,creep2,creep3,creep4,nil];
我正在检查碰撞,这有效:
if ([creep1 intersectsNode:Player] {
creep1.hidden = YES;
NSLog(@"Lost 1 Life!");
}
但我想检查这样的所有小动物:
if ([Level1.allobjects intersectsNode:Player] {
creep1.hidden = YES;
NSLog(@"Lost 1 Life!");
}
最后一段代码显然不起作用,但我该如何管理呢?
答案 0 :(得分:0)
这可能有效
for (SKSpriteNokde *creep in Level1)
{
if ([creep intersectsNode:Player] {
creep.hidden = YES;
NSLog(@"Lost 1 Life!");
}
}
这里我假设Level1是数组。