SpriteKit er Apples 2D-spillmotor - en gjengivelsesmotor bygget på toppen av OpenGL. Det ble introdusert med iOS 7, og hver etterfølgende utgivelse har brakt tillegg til rammen. Med bruk av teksturerte sprites, en innebygd fysikkmotor, og den meget kraftige SKAction
klassen, kan du veldig raskt bygge funksjonelle 2D-spill.
SpriteKit har innebygde redaktører for scener og partikler, en kamera node siden utgivelsen av iOS9, og innebygd støtte for fliser siden utgivelsen av iOS 10. Med disse nye tilleggene, blir SpriteKit raskt et kraftverk for å skape 2D-spill.
Nedenfor finner du et bilde av den innebygde sceneditoren, med en etikett, en farget sprite og et teksturert sprite.
SpriteKit, som de fleste spillmotorer, bruker en renderingsløype for å gjengi og oppdatere skjermen. Renderingsløkken går gjennom følgende trinn i gjengivelse av hver scene:
Hvert av disse trinnene har en tilsvarende metode du kan hekte inn for å bruke tilleggslogikk. Gjenopprettingsmetoder er som følger:
Oppdater
didEvaluateActions
didSimulatePhysics
didApplyConstraints
didFinishUpdate
For eksempel, hvis du ønsket å flytte objekter manuelt i scenen din, så Oppdater
Metoden ville være det du ville bruke. Eller hvis du hadde objekter som ble påvirket av handlinger eller fysikk, kan du knytte til de tilsvarende metodene for å sikre at disse tiltakene og fysikkimuleringen blir brukt før det endres du gjør.
SKNode
De SKNode
klassen er den grunnleggende byggestenen til SpriteKit. Alle dine skjermaktiver vil være en SKNode
eller underklasse derav.
De SKNode
klassen tegner ikke noen visuelle eiendeler selv. Hovedrollen er å gi grunnleggende oppførsel som andre klasser implementerer. For eksempel, SKScene
klassen er rotnoden i et tre av SKNode
forekomster og brukes til å holde sprites og annet innhold som må gjengis.
Rendering og animasjon er utført av en SKView
forekomst. Utsikten er plassert inne i et vindu og en SKScene
forekomst er lagt til det, og den scenen vil bli gjengitt og animert så lenge visningen er aktiv. Du kan bruke en enkelt SKView
forekommer i vinduet ditt og bytter mellom forskjellige scener når som helst.
Rammen definerer en rekke andre SKNode
klasser. Den vanligste som brukes i en scene er SKSpriteNode
klasse. De SKSpriteNode
klassen kan tegnes enten som et rektangel med et bilde som er kartlagt på det med SKTexture
, å lage en sprite, eller som et farget, utekstret rektangel. Du vil oftest bruke teksturerte sprites, fordi dette er hvordan du vil bringe spillets kunstverk til livs.
Andre viktige typer noder inkluderer:
SKShapeNode
, som gjør en form definert av en Core Graphics-baneSKVideo
, som viser videoinnholdSKLabel
, som viser en tekstetikettVi ser på flere av disse underklassene til SKNode
senere i denne serien.
SKAction
De SKAction
klassen er en veldig kraftig klasse som brukes til å bringe noder til liv. SKAction
kan endre nodens egenskaper over tid, for eksempel ved å flytte, skalere eller rotere dem. Du kan kjede handlinger sammen i en sekvens, utføre mange handlinger sammen som en gruppe, og gjenta dem i en loop. Du kan også bruke SKAction
å kjøre en egendefinert kodebrikke. For eksempel, anta at du ønsket å skrive ut koordinatene til en node etter at den er flyttet. Du kan kjøre en egendefinert kodebrikke innenfor SKAction
å gjøre nettopp det.
SpriteKit har en innebygd fysikkmotor som gjør håndtering av komplekse fysikk scenarier en bris. Bygget på toppen av det populære Box2D-rammeverket, kan du reagere på kollisjoner og kontakte hendelser, bruke krefter og tyngdekraften, og bygge svært komplekse fysikk simuleringer ved hjelp av ledd, for eksempel pins og fjærer. Du kan bruke sceneditoren til å visuelt legge til fysikk til noderne, eller du kan legge til fysikk programmatisk.
I SpriteKit, koordinatet (0,0)
ligger nederst til venstre på skjermen i stedet for øverst til venstre, som du kan være vant til hvis du har jobbet med Flash, Corona, HTML5 Canvas og mange andre spillrammer. Å ha opprinnelsen nederst til venstre er en OpenGL-konvensjon, og SpriteKit følger det fordi SpriteKit bruker OpenGL under hetten.
SpriteKit har en meget kraftig partikkelmotor som kan brukes til å simulere partikkelsystemer som brann og røyk. Det er også en innebygd partikkelditor, hvor du kan visuelt legge ut partikkelsystemer. Hvis du foretrekker å holde fast med kode, kan du programmere disse systemene fra grunnen opp med ingenting annet enn kode.
Nedenfor er et bilde av partikkelredaktøren med et brannlignende partikkelsystem.
SpriteKit har en rekke klasser dedikert til å bygge flislagte oppsett. Bruke tilemaps gir bedre minnebruk enn å bruke et veldig stort enkeltbilde. Flisene kan ordnes i rektangulære, sekskantede eller isometriske rister.
Nedenfor er et bilde av en flisekartskode med et rektangulært rutenett.
Dette er noen av høydepunktene i SpriteKit-motoren. Jeg foreslår at du leser SpriteKit oversikten for å lære mer om hva den har å tilby. For å lære mer om hvordan du kommer i gang med SpriteKit, bør du også sjekke ut Davis Allies innlegg her på Envato Tuts+.
Se også våre SpriteKit kurs! Disse vil ta deg gjennom alle trinnene for å bygge ditt første SpriteKit-spill for iOS, selv om du aldri har kodet med SpriteKit før.