Suche…


Parameter

Parameter Einzelheiten
zeigtFPS Zeigt die Anzahl der aktuellen Framerate in Frames pro Sekunde in der Ansicht an.
showsNodeCount Zeigt die Anzahl der aktuellen SKNodes an, die in der Ansicht angezeigt werden.
zeigtPhysik Zeigen Sie eine visuelle Darstellung der SKPhysicsBodys in der Ansicht an.
showsFields Zeigen Sie ein Bild an, das die Auswirkungen der Physikfelder in der Ansicht darstellt.
showsDrawCount Zeigt die Anzahl der Zeichnungsdurchgänge an, die zum Rendern der Ansicht erforderlich sind.
showsQuadCount Zeigt die Anzahl der Rechtecke an, die zum Rendern der Ansicht erforderlich sind.

Bemerkungen

Ein SKView ist eine Unterklasse von UIView, mit der SpriteKit-2D-Animationen dargestellt werden.

Ein SKView kann dem Interface Builder oder programmgesteuert wie 'normale' UIViews hinzugefügt werden. SpriteKit-Inhalte werden dann im SKView in einer SKScene dargestellt.

Siehe auch SKView-Klassenreferenz aus der Apple-Dokumentation.

Erstellen Sie ein SKView im Vollbildmodus mit dem Interface Builder

Ein typischer Anwendungsfall für SpriteKit ist, dass das SKView den gesamten Bildschirm ausfüllt.

Erstellen Sie dazu in Xcodes Interface Builder zunächst einen normalen ViewController, wählen Sie dann die enthaltene Ansicht aus und ändern Sie ihre Klasse von UIView in SKView :

Geben Sie hier die Bildbeschreibung ein

Rufen Sie im Code für den View Controller in der viewDidLoad-Methode mithilfe von self.view eine Verknüpfung zu diesem SKView auf:

In Swift:

guard let skView = self.view as? SKView else {
    // Handle error
    return
}

(Die Guard-Anweisung hier schützt vor dem theoretischen Fehler, dass die Ansicht keine SKView ist.)

Sie können dies dann verwenden, um andere Vorgänge auszuführen, z. B. eine SKScene zu präsentieren:

In Swift:

skView.presentScene(scene)

Debug-Informationen anzeigen

Die aktuelle Bildrate (in FPS, Frames Per Second) und die Gesamtzahl der SKNodes in der Szene (nodeCount, jedes Sprite ist ein SKNode, aber andere Objekte in der Szene sind auch SKNodes) können in der rechten unteren Ecke der Ansicht angezeigt werden .

Diese Optionen können nützlich sein, wenn sie zum Debuggen und Optimieren des Codes aktiviert sind (auf true gesetzt). Sie sollten jedoch deaktiviert werden (false), bevor Sie die App an den AppStore senden.

In Swift:

skView.showsFPS = true
skView.showsNodeCount = true

Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Erstellen Sie mit dem Interface Builder ein kleines SKView mit anderen Steuerelementen

Ein SKView muss nicht den gesamten Bildschirm ausfüllen und kann Speicherplatz mit anderen Steuerelementen der Benutzeroberfläche teilen. Sie können sogar mehr als ein SKView auf einmal anzeigen lassen, wenn Sie möchten.

Um mit Interface Builder ein kleineres SKView unter anderen Steuerelementen zu erstellen, erstellen Sie zunächst einen normalen ViewController und ziehen Sie dann eine neue Ansicht auf den View-Controller:

Ziehen Sie eine neue Ansicht und legen Sie sie ab

Es kann hilfreich sein, die Farbe dieser Ansicht auf etwas anderes als Weiß einzustellen (hier wird Schwarz verwendet), um sie im Interface Builder deutlicher zu sehen (diese Farbe wird in der endgültigen App nicht angezeigt). Fügen Sie weitere Steuerelemente hinzu (eine UIView, zwei Schaltflächen und eine Beschriftung werden hier als Beispiele angezeigt), und verwenden Sie Einschränkungen wie üblich, um sie auf der Anzeige darzustellen:

Farbe ändern, Steuerelemente hinzufügen, Einschränkungen hinzufügen

Wählen Sie dann die Ansicht aus, die Sie als SKView verwenden möchten, und ändern Sie ihre Klasse in SKView:

Ändern Sie die Klasse in SKView

Ziehen Sie dann mit dem Assistenten-Editor die Strg-Taste von diesem SKView in Ihren Code und erstellen Sie ein Outlet:

Erstellen Sie einen Outlet

Verwenden Sie diese Steckdose, um Ihre SKScene zu präsentieren.

In Swift:

skView.presentScene(scene)

Ergebnis (basierend auf dem Hello World- Beispiel):

Geben Sie hier die Bildbeschreibung ein



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow