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:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    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.

  • Das heißt: Alle Objekte im Array bewegen und nach und nach dann eben die Objekte zum Array hinzufügen?


    Aber ich verstehe nicht wie ich da die Richtung beeinflussen kann.

  • Zitat

    Aber ich verstehe nicht wie ich da die Richtung beeinflussen kann.

    Um die Richtung festzulegen, müsstest Du ja x oder y animieren. Das müsstest Du als Eigenschaft bei jedem Objekt hinterlegen. Dann kannst Du sie ja auch während der Bewegung noch ändern.

  • 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
    function gameLoop() {
    
            objekt['1'].sprite.y += 1;
        }

    Dadurch bewegt sich das Objekt nach unten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!