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:
Et voici l'un des problèmes :
pixi.js
version : _ex. 4.8.1Ce 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.
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.