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.
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:
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:
uppdatering
didEvaluateActions
didSimulatePhysics
didApplyConstraints
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ägSKVideo
, som visar videoinnehållSKLabel
, som visar en textetikettVi 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 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.
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.
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.
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.
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.