SpriteKit wird vorgestellt

SpriteKit ist Apples 2D-Game-Engine, eine auf OpenGL basierende Rendering-Engine. Es wurde mit iOS 7 eingeführt und jedes nachfolgende Release hat das Framework erheblich erweitert. Mit der Verwendung von texturierten Sprites, einer integrierten Physik-Engine und dem sehr leistungsstarken SKAction Klasse können Sie sehr schnell funktionsfähige 2D-Spiele erstellen.

SpriteKit verfügt über integrierte Editoren für Szenen und Partikel, einen Kameraknoten seit der Veröffentlichung von iOS9 und eine integrierte Unterstützung für Tilesets seit der Veröffentlichung von iOS 10. Mit diesen neuen Ergänzungen wird SpriteKit schnell zu einem Kraftpaket für die Erstellung von 2D-Spielen.

Unten sehen Sie ein Bild des integrierten Szeneneditors mit einer Beschriftung, einem farbigen und einem strukturierten Sprite.

Wiedergabeschleife

Wie die meisten Game Engines verwendet SpriteKit eine Rendering-Schleife zum Rendern und Aktualisieren des Bildschirms. Die Renderschleife durchläuft die folgenden Schritte beim Rendern jeder Szene:

  1. Aktualisieren Sie die Szene und ihre Objekte
  2. Aktionen auswerten
  3. Physik simulieren
  4. Anwenden von Einschränkungen
  5. Rendern Sie die Szene

Für jeden dieser Schritte gibt es eine entsprechende Methode, mit der Sie zusätzliche Logik anwenden können. Die Render-Loop-Methoden lauten wie folgt:

  1. aktualisieren
  2. didEvaluateActions
  3. didSimulatePhysics
  4. didApplyConstraints
  5. didFinishUpdate

Wenn Sie beispielsweise Objekte in Ihrer Szene manuell verschieben möchten, klicken Sie auf aktualisieren Methode wäre, was Sie verwenden würden. Wenn Sie Objekte hatten, die von Aktionen oder Physik betroffen waren, könnten Sie die entsprechenden Methoden einbinden, um sicherzustellen, dass diese Aktionen und die Physiksimulation vor allen von Ihnen vorgenommenen Änderungen angewendet werden.

SKNode

Das SKNode class ist der grundlegende Baustein von SpriteKit. Alle Ihre Bildschirm-Assets werden ein SKNode oder eine Unterklasse davon.

Das SKNode Die Klasse zeichnet selbst keine visuellen Elemente. Seine Hauptaufgabe besteht darin, das Grundverhalten bereitzustellen, das von anderen Klassen implementiert wird. Zum Beispiel die SKScene Klasse ist der Wurzelknoten in einem Baum von SKNode Instanzen und wird zum Speichern von Sprites und anderen Inhalten verwendet, die gerendert werden müssen. 

Das Rendern und die Animation werden von einem gemacht SKView Beispiel. Die Ansicht befindet sich in einem Fenster und einem SKScene Eine Instanz wird hinzugefügt, und diese Szene wird gerendert und animiert, solange die Ansicht aktiv ist. Sie können eine einzelne verwenden SKView Instanz in Ihrem Fenster und wechseln Sie jederzeit zwischen verschiedenen Szenen.

Der Rahmen definiert eine Reihe von anderen SKNode Unterklassen. Die am häufigsten verwendete Szene in einer Szene ist die SKSpriteNode Klasse. Das SKSpriteNode Klasse kann entweder als Rechteck gezeichnet werden, auf das ein Bild abgebildet ist SKTexture, Um ein Sprite oder ein farbiges, nicht texturiertes Rechteck zu erstellen. Sie verwenden meistens texturierte Sprites, weil Sie damit das Artwork Ihres Spiels zum Leben erwecken. 

Andere wichtige Arten von Knoten sind:

  • SKShapeNode, Dadurch wird eine durch einen Core Graphics-Pfad definierte Form dargestellt
  • SKVideo, die zeigt Videoinhalt an
  • SKLabel, welches eine Textbezeichnung anzeigt

Wir werden uns einige dieser Unterklassen von ansehen SKNode später in dieser Serie.

SKAction

Das SKAction class ist eine sehr leistungsfähige Klasse, mit der Ihre Knoten zum Leben erweckt werden. SKAction können die Eigenschaften Ihres Knotens im Laufe der Zeit ändern, z. B. durch Verschieben, Skalieren oder Drehen. Sie können Aktionen in einer Sequenz zusammenfassen, viele Aktionen als Gruppe zusammen ausführen und sie in einer Schleife wiederholen. Sie können auch verwenden SKAction einen benutzerdefinierten Codeblock ausführen. Angenommen, Sie möchten die Koordinaten eines Knotens nach dem Verschieben ausdrucken. Sie können einen benutzerdefinierten Codeblock in der ausführen SKAction genau das zu tun.

SpriteKit-Funktionen

Physik

SpriteKit verfügt über eine integrierte Physik-Engine, die die Handhabung komplexer Physik-Szenarien zum Kinderspiel macht. Das auf dem populären Box2D-Framework basierende System ermöglicht es Ihnen, auf Kollisionen und Kontaktereignisse zu reagieren, Kräfte und die Schwerkraft anzuwenden und sehr komplexe Physik-Simulationen mithilfe von Gelenken wie Stiften und Federn zu erstellen. Sie können den Szeneneditor verwenden, um den Knoten visuell Physik hinzuzufügen, oder Sie können die Physik programmgesteuert hinzufügen.

Koordinatensystem

In SpriteKit die Koordinate (0,0) befindet sich unten links im Bildschirm und nicht oben links, was Sie vielleicht gewöhnt sind, wenn Sie mit Flash, Corona, HTML5 Canvas und vielen anderen Spiele-Frameworks gearbeitet haben. Der Ursprung unten links ist eine OpenGL-Konvention, und SpriteKit folgt ihr, weil SpriteKit OpenGL unter der Haube verwendet.

Partikelsystem

SpriteKit verfügt über eine sehr leistungsstarke Particle Engine, mit der Partikelsysteme wie Feuer und Rauch simuliert werden können. Es gibt auch einen eingebauten Partikeleditor, mit dem Sie Partikelsysteme visuell anordnen können. Wenn Sie lieber mit Code bleiben, können Sie diese Systeme nur mit Code programmieren.

Unten sehen Sie ein Bild des Partikeleditors mit einem feuerähnlichen Partikelsystem.

Fliesen

SpriteKit bietet eine Reihe von Klassen zum Erstellen von gekachelten Layouts. Die Verwendung von Tilemaps bietet eine bessere Speichernutzung als die Verwendung eines sehr großen Einzelbildes. Die Kacheln können in rechteckigen, hexagonalen oder isometrischen Gittern angeordnet werden.

Unten sehen Sie ein Bild eines Kachelkartenknotens, der ein rechteckiges Gitter verwendet.

Fazit

Dies sind einige der Highlights der SpriteKit-Engine. Ich würde empfehlen, die SpriteKit-Übersicht zu lesen, um mehr über das Angebot zu erfahren. Um mehr über den Einstieg in SpriteKit zu erfahren, sollten Sie auch den Beitrag von Davis Allie hier auf Envato Tuts lesen+.

Schauen Sie sich auch unsere SpriteKit-Kurse an! Diese führen Sie durch alle Schritte beim Erstellen Ihres ersten SpriteKit-Spiels für iOS, auch wenn Sie noch nie mit SpriteKit programmiert haben.