Erkennen Sie das Klicken / Berühren der isometrischen Textur

Es fällt mir schwer, die Klickverarbeitung in einem einfachen isometrischen Sprite Kit-Spiel zu implementieren.

Ich habe eine Spielszene (SKScene) mit einer Karte (SKNode), die mehrere Tile-Objekte (SKSpriteNode) enthält.

Hier ist ein Screenshot der Karte:

Ich möchte in der Lage sein, die Kachel zu erkennen, auf die der Benutzer geklickt hat, und habe deshalb mouseDown für das Kachelobjekt implementiert. Hier ist mein mouseDown in Tile.m:

-(void)mouseDown:(NSEvent *)theEvent
{
    [self setColorBlendFactor:0.5];
}

Der Code scheint gut zu funktionieren, aber es gibt einen Fehler: Die Knoten überlappen sich und das Klickereignis wird im transparenten Teil des Knotens erkannt. Beispiel (die Rects wurden hinzugefügt, um nur das Problem zu veranschaulichen. Sie werden in der Logik nicht verwendet):

Wie Sie sehen können, wird die Kachel 8 transparent, wenn ich auf die obere linke Ecke der Kachel 7 klicke.

Ich habe versucht, alle Knoten an der Klickposition abzurufen und zu überprüfen, ob sich der Klick in einem CGPath befindet, ohne Erfolg (ich glaube, die Koordinaten stimmen nicht).

Meine Frage hier ist also, wie man den Klick nur auf die Textur und nicht auf den transparenten Teil erkennt. Oder ist meine Herangehensweise an das Problem falsch?

Jeder Rat wäre dankbar.

Bearbeiten: Für alle, die sich für die Lösung interessieren, die ich schließlich verwendet habe, siehemeine antwort hier

Antworten auf die Frage(3)

Ihre Antwort auf die Frage