Swift SpriteKit 3D Touch und Berührungen verschoben
Ich habe kürzlich eine Version meines Spiels für interne Tests an TestFlight gesendet. Mein Freund bemerkte, dass auf seinem iPhone 6S Plus die Steuerelemente zum Aufnehmen nicht richtig funktionieren.
Die Kontrollen sind wie folgt
1) linke Bildschirmhälfte = springen
2) rechte Bildschirmhälfte = schießen
3) Schieben und halten Sie die rechte Bildschirmhälfte gedrückt = Zeitlupe starten
Nun habe ich bei der Methode zum Starten von Berührungen eine leichte Verzögerung für das Schießen. Wenn also Berührungen aufgerufen werden, wird das Schießen abgebrochen und langsam gestartet. Dies scheint das Problem bei 3D Touch-fähigen Telefonen zu verursachen.
Digging weiter in diese stieß ich auf diesen Beitrag
iOS 9 Spritekit Double Tap funktioniert nicht auf dem iPhone 6S
wobei im Grunde gesagt wird, dass auf 3D Touch-fähigen Geräten die Methode touches moved automatisch aufgerufen wird.
On 3D Touch capable devices, touch pressure changes cause
touchesMoved:withEvent: to be called for all apps running on iOS
9.0. When running iOS 9.1, the method is called only for apps
linked with the iOS 9.0 (or later) SDK.
Apps should be prepared to receive touch move events with no
change in the x/y coordinates. "
Dies scheint zu verstehen, warum mein Freund Probleme hat. Wenn Berührungen immer aufgerufen werden, wird die Aufnahme abgebrochen und langsam gestartet, obwohl er nicht auf dem Bildschirm rutscht.
Also meine Fragen sind
1) Kannst du 3D Touch in SpriteKit-Spielen deaktivieren?
2) Ist das ein Bug?
3) Gibt es eine andere Möglichkeit, Berührungen zu verwenden, die auf 3D Touch-Geräten korrekt verschoben wurden?
4) Alternativ kann ich Gestenerkenner verwenden, um eine Slide-and-Hold-Funktion zu simulieren, die ich derzeit in berührungsbewegten Objekten ausführe.
Danke für jede Hilfe