GameLoop nutzen und Dinge bewegen [Logik]

  • Hallo, ich nutze aller Widererwarten Pixi.js um ein Spiel, welches ich bereits einmal angefangen hab neu zu entwickeln. Mein Ziel ist es mehrere Objekte über den Bildschirm bewegen zu lassen.


    Zum Grundverständnis einmal Pixi erklärt: Es gibt die Funktion update(), in der die Spiele Logik ausgeführt wird. Diese Funktion wird im Loop ausgeführt, pro Sekunde 30 mal, was eine stabile Framerate zur Folge haben soll. Jetzt möchte ich diese Funktion nutzen ( In der ja eben die Logik des Spiels rein soll, um meine Objekte zu bewegen.


    In meinem Beispiel sind es jetzt 14 Objekte, die sich alle zu einer Richtung bewegen sollen, allerdings soll jedes Objekt mit einer Verzögerung zum anderem starten. Da verstehe ich einfach nicht, wie ich der update function das mitteilen soll. Zur Verdeutlichung, genau so:


    Das hier ist ein älterer Versuch, mit einer anderen Engine:

    Dieser hat auch funktioniert, war aber aufgrund der Engine ineffizient. Da die neue Engine ganz anders funktioniert, muss die Logik nun wohl auch anders aufgebaut sein. Aber wie? Kann mir da einer helfen?

  • Meine Idee: Die Objekte in einem Array führen und dieses in der Funktion update abarbeiten, um sie zu bewegen. Dann für die Objekte, die später starten sollen, eine Zeit aufziehen mit setTimeout und erst nach Ablauf dieser Zeit das Objekt dem Array hinzu fügen. Beim nächsten Durchlauf der update-Funktion wird das neue Objekt dann in die Bearbeitung einbezogen und bewegt.

  • Also im Pixi Tutorial wird der gameLoop so beschrieben, dass man diesen für die Animation nutzen soll. innerhalb der Loop function soll man dann x oder y einfach +1 addieren oder subtrahieren, oder sonst was.


    Code
    1. function gameLoop() {
    2. objekt['1'].sprite.y += 1;
    3. }

    Dadurch bewegt sich das Objekt nach unten.