Presenterar SpriteKit

SpriteKit är Apples 2D-spelmotor, en återgivningsmotor som bygger på OpenGL. Det introducerades med iOS 7, och varje efterföljande release har medfört stora tillägg till ramverket. Med användning av texturerad sprites, en inbyggd fysikmotor, och den mycket kraftfulla SKAction klass kan du snabbt bygga funktionella 2D-spel.

SpriteKit har inbyggda redigerare för scener och partiklar, en kamera node sedan utgåvan av iOS9 och inbyggt stöd för plattor sedan utgåvan av iOS 10. Med dessa nya tillägg blir SpriteKit snabbt ett kraftverk för att skapa 2D-spel.

Nedan finns en bild av den inbyggda scenredigeraren, med en etikett, en färgad sprite och en texturerad sprite.

Rendering Loop

SpriteKit, som de flesta spelmotorer, använder en reningsslinga för att göra och uppdatera skärmen. Reningsslingan går igenom följande steg för att göra varje scen:

  1. Uppdatera scenen och dess objekt
  2. Utvärdera åtgärder
  3. Simulera fysik
  4. Applicera begränsningar
  5. Rendera scenen

Var och en av dessa steg har en motsvarande metod som du kan koppla in för att tillämpa ytterligare logik. Återgångslösningsmetoderna är följande:

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

Om du till exempel vill flytta objekt manuellt i din scen, så uppdatering Metod skulle vara vad du skulle använda. Eller om du hade föremål som påverkades av handlingar eller fysik, kunde du koppla i motsvarande metoder för att se till att de åtgärderna och fysiksimuleringen tillämpas innan du ändrar dig.

SKNode

De SKNode klassen är det grundläggande byggstenen i SpriteKit. Alla dina tillgångar på skärmen kommer att vara en SKNode eller underklass därav.

De SKNode klassen drar inte några visuella tillgångar sig själv. Dess främsta roll är att tillhandahålla baslinjebeteende som andra klasser implementerar. Till exempel, SKScene klassen är rotenoden i ett träd av SKNode instanser och används för att hålla sprites och annat innehåll som behöver göras. 

Rendering och animering görs av en SKView exempel. Utsikten är placerad inuti ett fönster och en SKScene exemplet läggs till det, och den scenen kommer att göras och animeras så länge som vyn är aktiv. Du kan använda en enda SKView exempel i ditt fönster och växla mellan olika scener när som helst.

Ramverket definierar ett antal andra SKNode underklasser. Den vanligaste som används inom en scen är SKSpriteNode klass. De SKSpriteNode klassen kan dras antingen som en rektangel med en bild mappad på den med SKTexture, för att skapa en sprite eller som en färgad, omstrukturerad rektangel. Du brukar oftast använda texturerad sprites, för det här är hur du kommer att ge ditt spel konstverk till liv. 

Andra viktiga typer av noder inkluderar:

  • SKShapeNode, vilket gör en form definierad av en Core Graphics-sökväg
  • SKVideo, som visar videoinnehåll
  • SKLabel, som visar en textetikett

Vi tittar på flera av dessa underklasser av SKNode senare i denna serie.

SKAction

De SKAction klassen är en mycket kraftfull klass som används för att få dina noder till liv. SKAction kan ändra nodens egenskaper över tid, till exempel genom att flytta, skala eller rotera dem. Du kan kedja åtgärder tillsammans i en sekvens, genomföra många åtgärder tillsammans som en grupp och upprepa dem i en loop. Du kan också använda SKAction att köra ett anpassat block av kod. Antag att du ville skriva ut koordinaterna för en nod när den har flyttats. Du kan köra ett anpassat kodblock inom SKAction att göra just det.

SpriteKit funktioner

Fysik

SpriteKit har en inbyggd fysikmotor som gör hanteringen av komplexa fysikscenarier en bris. Byggd på toppen av den populära Box2D-ramen, kan du svara på kollisioner och kontakta händelser, tillämpa krafter och gravitation, och bygga väldigt komplexa fysiksimuleringar med hjälp av leder, till exempel stift och fjädrar. Du kan använda scenredigeraren för att visuellt lägga till fysik till noderna, eller du kan lägga till fysik programmatiskt.

Koordinatsystem

I SpriteKit, koordinat (0,0) ligger längst ner till vänster på skärmen istället för övre vänstra, vilket du kan vara van vid om du har arbetat med Flash, Corona, HTML5 Canvas och många andra spelramar. Med ursprunget längst ned till vänster är en OpenGL-konvention, och SpriteKit följer det eftersom SpriteKit använder OpenGL under huven.

Partikelsystem

SpriteKit har en mycket kraftfull partikelmotor som kan användas för att simulera partikelsystem som brand och rök. Det finns också en inbyggd partikelredigerare där du visuellt kan lägga ut partikelsystem. Om du föredrar att hålla fast med koden kan du programmera dessa system från grunden med inget annat än kod.

Nedan är en bild av partikelredigeraren med ett eldliknande partikelsystem.

plattor

SpriteKit har ett antal klasser dedikerade till att bygga kakelplattor. Användning av flikar ger bättre minnesanvändning än att använda en mycket stor enstaka bild. Plattorna kan ordnas i rektangulära, sexkantiga eller isometriska galler.

Nedan visas en bild av en kakelkarta med ett rektangulärt rutnät.

Slutsats

Dessa är några av höjdpunkterna i SpriteKit-motorn. Jag föreslår att du läser SpriteKit-översikten för att lära dig mer om vad den har att erbjuda. För att lära dig mer om hur du kommer igång med SpriteKit, bör du också kolla in Davis Allies post här på Envato Tuts+.

Titta även på våra SpriteKit kurser! Dessa kommer att ta dig igenom alla steg för att bygga ditt första SpriteKit-spel för iOS, även om du aldrig kodat med SpriteKit innan.