SpriteKit este motorul de jocuri 2D al Apple - un motor de randare construit pe partea de sus a OpenGL. Acesta a fost introdus cu iOS 7, iar fiecare lansare ulterioară a adus mari adăugări în cadrul. Cu ajutorul spritelor texturate, un motor de fizică încorporat și cel foarte puternic SKAction
clasa, puteți construi foarte rapid jocuri funcționale 2D.
SpriteKit are built-in editori pentru scene și particule, un nod de cameră de la lansarea iOS9 și suport încorporat pentru tilesets de la lansarea iOS 10. Cu aceste noi adăugiri, SpriteKit devine rapid o putere pentru crearea de jocuri 2D.
Mai jos este o imagine a editorului de scenă încorporat, cu o etichetă, un sprite colorat și un sprite texturate.
SpriteKit, ca majoritatea motoarelor de jocuri, utilizează o buclă de redare pentru a afișa și actualiza ecranul. Buclele de redare parcurg următorii pași în redarea fiecărei scene:
Fiecare dintre acești pași are o metodă corespunzătoare pe care o puteți conecta pentru a aplica o logică suplimentară. Metodele de buclă de randare sunt după cum urmează:
Actualizați
didEvaluateActions
didSimulatePhysics
didApplyConstraints
didFinishUpdate
De exemplu, dacă doriți să mutați manual obiecte în scenă, atunci Actualizați
metoda ar fi ceea ce ați folosi. Sau dacă aveați obiecte care au fost afectate de acțiuni sau fizică, ați putea lega metodele corespunzătoare pentru a vă asigura că acele acțiuni și simularea fizică sunt aplicate înainte de orice schimbări pe care le faceți.
SKNode
SKNode
clasa este blocul de bază al SpriteKit. Toate activele de pe ecran vor fi una SKNode
sau subclasa acestora.
SKNode
clasa nu atrage nici un material vizual în sine. Rolul său principal este de a oferi un comportament de bază pe care îl pun în aplicare alte clase. De exemplu, SKScene
clasa este nodul rădăcină într - un arbore al lui SKNode
instanțe și este folosit pentru a ține sprites și alte conținut care trebuie să fie redate.
Redarea și animația sunt realizate de un SKView
instanță. Vederea este plasată în interiorul unei ferestre și a unei ferestre SKScene
se adaugă o instanță și scena va fi redată și animată atâta timp cât vizualizarea este activă. Puteți utiliza un singur SKView
exemplu în fereastra dvs. și comutați între diferite scene în orice moment.
Cadrul definește un număr de alte SKNode
subclase. Cel mai frecvent utilizat în cadrul unei scene este SKSpriteNode
clasă. SKSpriteNode
clasa poate fi desenată fie ca un dreptunghi cu o imagine mapată pe ea cu SKTexture
, pentru a crea un sprite sau drept dreptunghi colorat, neted. Veți folosi cel mai adesea sprite de textură, deoarece astfel veți aduce la viață viața de artă a jocului dvs..
Alte tipuri importante de noduri includ:
SKShapeNode
, care conferă o formă definită de o cale grafică de bazăSKVideo
, care afișează conținut videoSKLabel
, care afișează o etichetă de textNe vom uita la câteva din aceste subclase ale lui SKNode
mai târziu în această serie.
SKAction
SKAction
clasa este o clasă foarte puternică care este folosită pentru a vă aduce la viață nodurile. SKAction
poate schimba proprietățile nodului în timp, de exemplu prin mișcarea, scalarea sau rotirea acestora. Puteți să realizați lanțuri de acțiuni împreună într-o secvență, să executați mai multe acțiuni împreună ca grup și să le repetați într-o buclă. Puteți utiliza, de asemenea SKAction
pentru a rula un bloc personalizat de cod. De exemplu, să presupunem că doriți să imprimați coordonatele unui nod după ce sa mutat. Ați putea rula un bloc de cod personalizat în cadrul SKAction
să facă exact asta.
SpriteKit are un motor de fizică încorporat care face ca scenariile de fizică complexă să fie utile. Construit pe partea de sus a cadrului Box2D popular, vă permite să răspundeți la coliziuni și evenimente de contact, să aplicați forțe și gravitații și să construiți simulări fizice foarte complexe folosind articulații, cum ar fi știfturile și izvoarele. Puteți folosi editorul de scenă pentru a adăuga vizual fizic la noduri sau puteți adăuga fizica programabil.
În SpriteKit, coordonatele (0,0)
este situat în partea din stânga jos a ecranului în loc de partea stângă sus, pe care ați putea fi folosit dacă ați lucrat cu Flash, Corona, HTML5 Canvas și multe alte cadre de joc. Având originea din stânga jos este o convenție OpenGL, iar SpriteKit îl urmărește deoarece SpriteKit folosește OpenGL sub hota.
SpriteKit are un motor cu particule foarte puternic care poate fi folosit pentru a simula sisteme de particule cum ar fi focul și fumul. Există, de asemenea, un editor de particule încorporat, în care puteți să vizualizați vizual sistemele de particule. Dacă preferați să respectați codul, puteți programa aceste sisteme de la bază folosind doar codul.
Mai jos este o imagine a editorului de particule cu un sistem de particule asemanatoare focului.
SpriteKit are o serie de clase dedicate construirii schemelor de pardoseli. Utilizarea tilemaps oferă o utilizare mai bună a memoriei decât utilizarea unei imagini unice foarte mari. Plăcile pot fi aranjate în rețele rectangulare, hexagonale sau izometrice.
Mai jos este o imagine a unui nod de hartă de țiglă utilizând o grilă dreptunghiulară.
Acestea sunt câteva dintre cele mai importante momente ale motorului SpriteKit. Aș sugera citirea prezentării SpriteKit pentru a afla mai multe despre ceea ce are de oferit. Pentru a afla mai multe despre cum să începeți cu SpriteKit, ar trebui să verificați și postul lui Davis Allie aici pe Envato Tuts+.
De asemenea, verificați cursurile noastre SpriteKit! Acestea vă vor duce prin toți pașii de construire a primului joc SpriteKit pentru iOS, chiar dacă nu ați codat niciodată cu SpriteKit înainte.