Ich habe eine switch-Anweisung, die bestimmt, welcher Knotenname berührt wurde. Ich habe zwei Knoten, die sich überlappen. Wenn die oberste berührt wird, möchte ich nur den Code für den obersten Knoten ausführen. Also habe ich nach diesem Fall eine Pause gemacht. Trotzdem wird der Code für beide Fälle ausgeführt. Was ist der beste Weg, nur den Top Case auszulösen? Unten ist der Code:Swift & SpriteKit - Switch-Anweisung mit Pause
for node in nodeTouched {
if let currentNode = node.name {
switch currentNode {
case "thisIsTheTopNode":
print("top")
break
case "thisIsTheNodeUnderneath":
print("bottom")
break
default:
break
}
}
}
Ausgang:
oben
Boden
Ich glaube nicht, dass es ein Problem mit dem obigen Code gibt. Ihre break-Anweisung sollte funktionieren. Meistens hat Ihr nodeTouched beide Knoten. Wenn ja, dann müssen Sie auch von der for-Schleife brechen. – adev
in swift, brauchen Sie nicht zu brechen – Knight0fDragon
Ich wette, dass nodeTouched berührt beide Knoten, und Sie wissen es nicht, platzieren Sie einen Druck direkt nach Ihrer für die besagt 'print (" \ (nodeTouched.count) ")' – Knight0fDragon