2016-04-29 13 views
1

Ich bin ziemlich neu in SpriteKit, kommt aus etwa 4 Monaten herumspielen mit HTML5. Unter Verwendung von HTML5 youtube Spielanleitungen aktualisieren meine Programme ständig die Position eines Spielers oder Objekts.SpriteKit - SKActions oder Aktualisieren von Positionen in Update-Funktion

Beispiel, wenn es hilft:

function run() { 
    var loop = function() { 
     window.requestAnimationFrame(loop, canvas); 

     update(); //here I would add maybe 3 to a player's x pos and redraw in draw() 
     draw(); 
    } 
    window.requestAnimationFrame(loop, canvas); 
} 

Aber ein Blick auf verschiedene SpriteKit Tutorials online, SKAction viele nutzen Knoten über den Bildschirm zu bewegen.

Meine Frage ist, ob die ständige Aktualisierung der Position eines Knotens in SpriteKit unorthodox oder verpönt ist, und ich sollte mich daran gewöhnen, Aktionen zu verwenden, und warum?

+0

Sie könnten entweder SKActions außerhalb der Update-Funktion verwenden oder die Position inkrementieren/dekrementieren oder Rotation in Update-Funktion, es liegt an Ihnen. – Abdou023

Antwort

2

Nein, es ist nicht verpönt, und es ist gut zu wissen, wie man diese Dinge manuell macht. Wenn es ziemlich einfach ist, regelmäßige Bewegung, dann ist SKAction in Ordnung. Für kompliziertere Dinge (und SKActions können tatsächlich kompliziert werden, wenn Sprites Pfaden und Bezier-Kurven folgen usw.), benutze die Update() Funktion, iteriere über deine Sprites (unter Verwendung von enumerateChildNodesWithName oder ähnlichem) und verschiebe sie wie nötig.

Sie können die 2 kombinieren - bewegen Sie die Sprites in Update() und animieren Sie sie mit einem SKAction, oder umgekehrt.

Bedenken Sie, dass Sie nicht anrufen Update(); Es wird automatisch von der Game-Engine 60 Mal pro Sekunde aufgerufen. Es wird eine Zeit verstrichen, so dass Sie genau herausfinden können, wie lange es seit dem letzten Aufruf von Update() nicht immer 1/60s gewesen ist.

Verwandte Themen