Pixi.js: Beaucoup de conteneurs de particules à l'écran créent une explosion psychédélique impressionnante

Créé le 5 août 2018  ·  3Commentaires  ·  Source: pixijs/pixi.js

Comportement prévisible

Je travaille sur un jeu où lorsque 2 objets se rencontrent, 1 absorbe l'autre, et je crée un effet d'absorption à l'aide d'un conteneur de particules et de quelques sprites. Cependant, si j'ai trop de ces effets à la fois à l'écran, cela crée une explosion psychédélique infinie, ce qui est assez génial, mais pas vraiment ce que je recherchais. Cependant, si je passe d'un conteneur de particules à un conteneur ordinaire, le problème disparaît. De plus, le problème ne se produit que s'il y a une tonne de conteneurs de particules à l'écran à la fois. S'il y en a moins, ça n'arrive pas.

Mise à jour : cela se produit toujours avec le conteneur pixi ordinaire lorsque le jeu est exécuté dans un navigateur mobile, alors peut-être un problème de limite de mémoire ?

Voici ma hiérarchie de vues pour chaque effet :

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

Voici un gif de ce à quoi il est censé ressembler:
regularcontainer

Et voici l'un des problèmes :
particlecontainerexplosion

  • pixi.js version : _ex. 4.8.1
  • Navigateur : _par ex. Chrome 67.0.3396.99
  • Appareil : _par ex. Bureau_OS_X

Commentaire le plus utile

Il s'avère donc que je suis en fait juste stupide sur celui-ci. Après avoir traqué quelques fausses pistes, j'ai découvert que le paramètre d'intensité de mes effets était incorrectement lié au framerate dans le but de les faire disparaître plus rapidement si le jeu était à la traîne. Cependant, mes calculs étaient erronés et cela les a fait augmenter en intensité, ce qui a encore retardé le jeu, entamant un cercle vicieux. Incidemment, j'ai découvert que les conteneurs réguliers sont apparemment légèrement plus performants que les conteneurs de particules dans mon cas d'utilisation.

Tous les 3 commentaires

Ce n'est pas un bug, c'est une fonctionnalité !

Il s'avère donc que je suis en fait juste stupide sur celui-ci. Après avoir traqué quelques fausses pistes, j'ai découvert que le paramètre d'intensité de mes effets était incorrectement lié au framerate dans le but de les faire disparaître plus rapidement si le jeu était à la traîne. Cependant, mes calculs étaient erronés et cela les a fait augmenter en intensité, ce qui a encore retardé le jeu, entamant un cercle vicieux. Incidemment, j'ai découvert que les conteneurs réguliers sont apparemment légèrement plus performants que les conteneurs de particules dans mon cas d'utilisation.

Ce fil a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues liés.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

lucap86 picture lucap86  ·  3Commentaires

YuryKuvetski picture YuryKuvetski  ·  3Commentaires

Vardner picture Vardner  ·  3Commentaires

gaccob picture gaccob  ·  3Commentaires

madroneropaulo picture madroneropaulo  ·  3Commentaires