Pixi.js: Muitos recipientes de partículas na tela criam uma explosão psicodélica incrível

Criado em 5 ago. 2018  ·  3Comentários  ·  Fonte: pixijs/pixi.js

Comportamento esperado

Estou trabalhando em um jogo em que quando 2 objetos se encontram, 1 absorve o outro e crio um efeito de absorção usando um contêiner de partículas e alguns sprites. No entanto, se eu tiver muitos desses efeitos na tela de uma vez, isso cria uma explosão psicodélica infinita, o que é incrível, mas não é exatamente o que eu queria. No entanto, se eu mudar de um particleContainer para um container normal, o problema desaparece. Além disso, o problema só acontece se houver uma tonelada de recipientes de partículas na tela por vez. Se houver menos, isso não acontece.

Atualização: Na verdade, ainda acontece com o contêiner de pixi regular quando o jogo é executado em um navegador móvel, talvez um problema de limite de memória?

Esta é minha hierarquia de visualização para cada efeito:

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

Aqui está um gif de como deve ser:
regularcontainer

E aqui está um dos problemas:
particlecontainerexplosion

  • pixi.js version: _ex. 4.8.1
  • Navegador: _ex. Chrome 67.0.3396.99
  • Dispositivo: _ex. Desktop_OS_X

Comentários muito úteis

Acontece que sou apenas burro nesse caso. Depois de perseguir algumas pistas falsas, descobri que o parâmetro de intensidade dos meus efeitos estava incorretamente vinculado à taxa de quadros em um esforço para fazê-los desaparecer mais rápido se o jogo estivesse atrasado. No entanto, minha matemática estava errada e realmente os fez aumentar de intensidade, o que atrasou o jogo ainda mais, iniciando um ciclo vicioso. A propósito, descobri que os contêineres regulares parecem ter um desempenho ligeiramente superior do que os contêineres de partículas em meu caso de uso.

Todos 3 comentários

Isso não é um bug, é um recurso!

Acontece que sou apenas burro nesse caso. Depois de perseguir algumas pistas falsas, descobri que o parâmetro de intensidade dos meus efeitos estava incorretamente vinculado à taxa de quadros em um esforço para fazê-los desaparecer mais rápido se o jogo estivesse atrasado. No entanto, minha matemática estava errada e realmente os fez aumentar de intensidade, o que atrasou o jogo ainda mais, iniciando um ciclo vicioso. A propósito, descobri que os contêineres regulares parecem ter um desempenho ligeiramente superior do que os contêineres de partículas em meu caso de uso.

Este tópico foi bloqueado automaticamente, pois não houve nenhuma atividade recente depois que ele foi fechado. Abra um novo problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

softshape picture softshape  ·  3Comentários

Darker picture Darker  ·  3Comentários

gigamesh picture gigamesh  ·  3Comentários

st3v0 picture st3v0  ·  3Comentários

YuryKuvetski picture YuryKuvetski  ·  3Comentários