Hallo zusammen,
Ich probiere gerade bisschen mit Sprite kit rum.
Und nun bin ich auf ein Problem gestoßen. Ich habe eine selbsterstellte Klasse für Thumbsticks.
Hat auch alles gut geklappt bis ich 2 Sticks in meinem Spiel verwendete. Wenn ich beim zweiten "reintouche" bewegt sich auch der andere stick bzw. der spieler.
Das selbe problem hatte ich bei Buttons auch, das habe ich dann natürlich so gelöst, dass ich in der touchbegan: methode abgefragt habe ob der Touch innerhalb des Buttons ist.
Beim Thumbstick habe ich habe das Problem, dass es ja normal ist, das man beim Bewegen ausserhalb des sticks kommt. Und wenn ich nun in touchMoved: abfrage ob der Touch innerhalb ist, trifft das ja nicht mehr zu..
Hier die touch methoden des Thumbsticks:
Alles anzeigen
Und so rufe ich sie in der Scene auf:
Auf Stackoverflow wurde mir geraten(für die Butttons) den Nodes namen zu geben. Aber das klappt ja dann bei den Sticks auch nicht, da sie ja auch ausserhalb sein können.
Wie es scheint habe ich das auch noch nicht ganz verstanden wie das mit den Touches funktioniert. Ich dachte eigentlich, dass die Scene eben diese touchevents auslöst, wenn irgendwo gedrückt wurde.
Nun kann ich dass in jede Klasse übergeben und schauen ob der Touch innerhalb ist.
Ich habe "früher" mit C# und XNA Spiele programmiert und dachte es ähnelt sich in der Hinsicht...
Kann mir jemand helfen bzw. ein guten Link zukommen lassen?
Danke!
Ich probiere gerade bisschen mit Sprite kit rum.
Und nun bin ich auf ein Problem gestoßen. Ich habe eine selbsterstellte Klasse für Thumbsticks.
Hat auch alles gut geklappt bis ich 2 Sticks in meinem Spiel verwendete. Wenn ich beim zweiten "reintouche" bewegt sich auch der andere stick bzw. der spieler.
Das selbe problem hatte ich bei Buttons auch, das habe ich dann natürlich so gelöst, dass ich in der touchbegan: methode abgefragt habe ob der Touch innerhalb des Buttons ist.
Beim Thumbstick habe ich habe das Problem, dass es ja normal ist, das man beim Bewegen ausserhalb des sticks kommt. Und wenn ich nun in touchMoved: abfrage ob der Touch innerhalb ist, trifft das ja nicht mehr zu..
Hier die touch methoden des Thumbsticks:
Quellcode
- - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- {
- isUsing = YES;
- }
- - (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- {
- UITouch *touch = [touches anyObject];
- CGPoint touchPoint = [touch locationInNode:self];
- isUsing = YES;
- CGFloat distance = DistanceBetweenTwoPoints(CGPointZero, touchPoint);
- if((distance < self.size.height / 2 || isUsing))
- {
- movingPad.position = CGPointMake(Normalize(touchPoint).x * 30, Normalize(touchPoint).y * 30);
- self.direction = Normalize(touchPoint);
- }
- }
- - (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- {
- isUsing = NO;
- movingPad.position = CGPointZero;
- self.direction = CGPointZero;
- }
Und so rufe ich sie in der Scene auf:
Auf Stackoverflow wurde mir geraten(für die Butttons) den Nodes namen zu geben. Aber das klappt ja dann bei den Sticks auch nicht, da sie ja auch ausserhalb sein können.
Wie es scheint habe ich das auch noch nicht ganz verstanden wie das mit den Touches funktioniert. Ich dachte eigentlich, dass die Scene eben diese touchevents auslöst, wenn irgendwo gedrückt wurde.
Nun kann ich dass in jede Klasse übergeben und schauen ob der Touch innerhalb ist.
Ich habe "früher" mit C# und XNA Spiele programmiert und dachte es ähnelt sich in der Hinsicht...
Kann mir jemand helfen bzw. ein guten Link zukommen lassen?
Danke!