Estoy trabajando en un juego en el que cuando 2 objetos se encuentran, 1 absorbe al otro y creo un efecto de absorción usando un contenedor de partículas y algunos sprites. Sin embargo, si tengo demasiados de estos efectos en la pantalla a la vez, se crea una explosión psicodélica infinita, que es algo asombroso, pero no es realmente lo que estaba buscando. Sin embargo, si cambio de un contenedor de partículas a un contenedor normal, el problema desaparece. Además, el problema solo ocurre si hay una tonelada de contenedores de partículas en pantalla a la vez. Si hay menos, no sucede.
Actualización: en realidad, todavía sucede con el contenedor pixi normal cuando el juego se ejecuta en un navegador móvil, así que ¿tal vez un problema de límite de memoria?
Aquí está mi jerarquía de vista para cada efecto:
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
Aquí hay un gif de cómo se supone que debe verse:
Y aquí está uno de los problemas:
pixi.js
versión: _e.g. 4.8.1¡Esto no es ningún error, esta es una característica!
Así que resulta que en realidad soy tonto con esto. Después de perseguir algunas pistas falsas, descubrí que el parámetro de intensidad de mis efectos estaba incorrectamente vinculado a la velocidad de fotogramas en un esfuerzo por hacer que se desvanecieran más rápido si el juego estaba retrasado. Sin embargo, mis matemáticas estaban equivocadas y en realidad las hizo aumentar en intensidad, lo que retrasó aún más el juego, iniciando un círculo vicioso. Por cierto, descubrí que, en mi caso de uso, los contenedores regulares son aparentemente un poco más eficaces que los contenedores de partículas.
Este hilo se ha bloqueado automáticamente ya que no ha habido ninguna actividad reciente después de que se cerró. Abra un nuevo problema para errores relacionados.
Comentario más útil
Así que resulta que en realidad soy tonto con esto. Después de perseguir algunas pistas falsas, descubrí que el parámetro de intensidad de mis efectos estaba incorrectamente vinculado a la velocidad de fotogramas en un esfuerzo por hacer que se desvanecieran más rápido si el juego estaba retrasado. Sin embargo, mis matemáticas estaban equivocadas y en realidad las hizo aumentar en intensidad, lo que retrasó aún más el juego, iniciando un círculo vicioso. Por cierto, descubrí que, en mi caso de uso, los contenedores regulares son aparentemente un poco más eficaces que los contenedores de partículas.