2016-09-17 2 views
1

Wenn mein App Umwandlung, die in ihm eine SpriteKit Szene hat, auf iOS 10 Ich meine Szene ursprüngliche Kameraposition aus konvertieren musste:SpriteKit Kamera Positionskorrektur in iOS10?

cameraNode.position = CGPoint(x: self.size.width/2, y: self.size.height/2) 

zu machen iOS10 mit:

if #available(iOS 10, *) { 
    cameraNode.position = CGPoint(x: self.size.width/2, y: (self.size.height + voidSize)/2) 
} 
else { 
    cameraNode.position = CGPoint(x: self.size.width/2, y: self.size.height/2) 
} 

Die iOS10-Version macht mehr Sinn, da ich einen Teil der Szene außerhalb des Bildschirms habe (wo Sprites erstellt werden, bevor sie dem Benutzer "enthüllt" werden) und "voidSize" repräsentiert dies. Es muss also ein Offset hinzugefügt werden, um den Off-Screen-Bereich zu berücksichtigen.

Die Frage ist, was hat sich in SpriteKit in iOS 10 geändert, um meine Kameraposition so zu korrigieren, die vorher nicht da war?

Die App funktioniert jetzt gut, auf iOS 9 und iOS 10 - nur neugierig, was das verursacht hat.

+0

IMHO meine Faustregel lautet: Wenn Apple ein neues Feature zB in iOS 8 bringt, dann benutze es nicht bis iOS 10, sonst wirst du einfach in Schwierigkeiten geraten ;-) – salocinx

Antwort

2

Es gab einen Fehler mit SKCameraNode, wo es nicht richtig zentriert wurde. Es funktioniert jetzt korrekt mit ios 10, also benutze den ios 9 check nicht, benutze einfach die neue Einstellung, die du gesagt hast, macht sowieso viel mehr Sinn.

Meine Spiele im App Store, die noch nicht für ios 10 aktualisiert wurden, sehen jetzt falsch aus. Das muss also ein allgemeiner Fix sein und kein iOS-Versions-spezifischer Fix.

Ich machte sogar einen Fehlerbericht darüber, welchen Apfel reagiert haben und bestätigt fixiert werden (27171076)

Der Haupt Kern wurde diese

Zusammenfassung: die Standard SpriteKit Vorlage mit SKCameraNode verwenden und setzen In der Mitte des Bildschirms wird die Kamera auf iPhones versetzt. Auf iPads ist es wie erwartet zentriert.

Schritte zum Reproduzieren: - neue Sprite-Kit Standardvorlage erstellen - SKCamera Knoten und Zentrum in der Mitte des Bildschirms (in Code oder mit visuellen Leveln-Editor)

Erwartete Ergebnisse hinzufügen: Diese Kamera auf dem iPhone zentriert ist wie auf iPads.

Aktuelle Ergebnisse: Kamera ist offCenter auf iPhones. Im Hochformat ist HelloWorld Labels nach links verschoben und in Querformat ist es nach unten verschoben. "