Pixi.js: Viele Partikelbehälter auf dem Bildschirm erzeugen eine fantastische psychedelische Explosion

Erstellt am 5. Aug. 2018  ·  3Kommentare  ·  Quelle: pixijs/pixi.js

Erwartetes Verhalten

Ich arbeite an einem Spiel, bei dem, wenn 2 Objekte aufeinandertreffen, 1 das andere absorbiert und ich einen Absorptionseffekt mit einem Partikelbehälter und einigen Sprites erzeuge. Wenn ich jedoch zu viele dieser Effekte gleichzeitig auf dem Bildschirm habe, entsteht eine unendliche psychedelische Explosion, die irgendwie großartig ist, aber nicht wirklich das, was ich wollte. Wenn ich jedoch von einem PartikelContainer zu einem normalen Container wechsle, verschwindet das Problem. Außerdem tritt das Problem nur auf, wenn eine Menge Partikelbehälter gleichzeitig auf dem Bildschirm angezeigt werden. Wenn es weniger sind, passiert es nicht.

Update: Es passiert tatsächlich immer noch mit dem regulären Pixi-Container, wenn das Spiel in einem mobilen Browser ausgeführt wird, also vielleicht ein Problem mit dem Speicherlimit?

Hier ist meine Ansichtshierarchie für jeden Effekt:

PIXI.Container // Effect main container. Gets scaled/positioned
    PIXI.Sprite // This is an overall glow
    PIXI.particles.ParticleContainer // This is the streaks effect
        PIXI.Sprite[] // Individual streak of light. Gets rotated and alpha'ed

Hier ist ein Gif, wie es aussehen soll:
regularcontainer

Und hier ist eines der Probleme:
particlecontainerexplosion

  • pixi.js Version: _z.B. 4.8.1
  • Browser: _z.B. Chrom 67.0.3396.99
  • Gerät: _z.B. Desktop_OS_X

Hilfreichster Kommentar

Es stellt sich also heraus, dass ich in dieser Sache eigentlich nur dumm bin. Nachdem ich einigen falschen Hinweisen nachgegangen war, entdeckte ich, dass der Intensitätsparameter meiner Effekte falsch an die Framerate gebunden war, um sie schneller verblassen zu lassen, wenn das Spiel verzögert wurde. Meine Mathematik war jedoch falsch und es hat sie tatsächlich an Intensität erhöht, was das Spiel weiter verzögerte und einen Teufelskreis startete. Übrigens habe ich festgestellt, dass normale Container in meinem Anwendungsfall scheinbar etwas performanter sind als Partikelcontainer.

Alle 3 Kommentare

Dies ist kein Fehler, das ist ein Feature!

Es stellt sich also heraus, dass ich in dieser Sache eigentlich nur dumm bin. Nachdem ich einigen falschen Hinweisen nachgegangen war, entdeckte ich, dass der Intensitätsparameter meiner Effekte falsch an die Framerate gebunden war, um sie schneller verblassen zu lassen, wenn das Spiel verzögert wurde. Meine Mathematik war jedoch falsch und es hat sie tatsächlich an Intensität erhöht, was das Spiel weiter verzögerte und einen Teufelskreis startete. Übrigens habe ich festgestellt, dass normale Container in meinem Anwendungsfall scheinbar etwas performanter sind als Partikelcontainer.

Dieser Thread wurde automatisch gesperrt, da nach dem Schließen in letzter Zeit keine Aktivität stattgefunden hat. Bitte öffnen Sie eine neue Ausgabe für verwandte Fehler.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

lucap86 picture lucap86  ·  3Kommentare

gigamesh picture gigamesh  ·  3Kommentare

neciszhang picture neciszhang  ·  3Kommentare

lunabunn picture lunabunn  ·  3Kommentare

zcr1 picture zcr1  ·  3Kommentare