2015-03-07 1 views
1

Je fais un jeu simple qui reconnaît des touches sur des nœuds spécifiques et il fonctionne lorsque je clique sur ce nœud spécifique, il NSLog(@"correct"); si vous cliquez sur un autre nœud NSLog(@"wrong"); Je reconnais le nœud wrong en utilisant cetouche d'arrière-plan Désactiver SpriteKit iOS

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch * touch = [touches anyObject]; 
    CGPoint location = [touch locationInNode:self]; 
    SKNode *node = [self nodeAtPoint:location]; 

    if ([node.name isEqualToString:@"correct"]){ 
     NSLog(@"correct"); 
    }else if (![node.name isEqualToString:@"correct"]){ 
     NSLog(@"Wrong"); 
    } 
} 

qui fonctionne bien, mais quand je clique sur le fond NSLog(@"Wrong") je veux désactiver les touches de fond. Comment puis-je le désactiver?

Merci à l'avance

+1

Puis-je vous demander d'ajouter plus de code? Comment vous ajoutez les noeuds? –

+0

@LuaiKalkatawi vérifier l'édition – axd

Répondre

2

Vous devez utiliser certains comme SKNode *node = [self nodeAtPoint:touchLocation]; dans votre méthode de touchesBegan. Dans ce cas, vérifiez si node == nil. Si oui, vous ne touchez pas à un noeud.

Si vous avez un arrière-plan ou un nœud mondial, ajoutez du code à vérifier, en lui affectant un nom unique, si le nœud d'arrière-plan est touché.

+0

Je l'utilise déjà – axd

+0

Ajoutez votre code dans un autre if block - if (! [Node.name isEqualToString: @ "background"]) {... votre bloc if/else ici ... } – Whirlwind

+0

Merci beaucoup @sangony –