带有图形的粒子容器支持

Particle container support with Graphics

是否可以在 Pixi.js 中使用包含 Graphics 对象的 Particle Container 而不是 sprite?如果我使用图形 class,则会因为缺少纹理而抛出异常。

TypeError: e[0]._texture is undefined

目标是利用粒子容器的快速渲染性能来显示大量的图形元素(例如矩形、圆形、多边形)。

var group = new PIXI.ParticleContainer(2000, {scale: true, position: true, rotation: true});

for(var i=0; i <1000; i++)
{
  var graphics = new PIXI.Graphics();
      graphics.lineStyle(1, 0xef7975, 1);
      graphics.beginFill(0xef7975, 1);
      graphics.drawRect(0, 0, 10, 10);
      graphics.endFill();

      //Add Positioning, rotation, or scaling
      //....
      group.addChild(graphics);
}

一种可能性是使用 Graphics class 的 generateTexture(resolution, scaleMode) 函数。此纹理可用于实例化精灵并将其添加到粒子容器中。

var sprite = new PIXI.Sprite(this.graphics.generateTexture(this.width * this.height, PIXI.scaleModes.DEFAULT));
    group.addChild(sprite);

要将图形转换为纹理,请执行以下操作:

let texture = renderer.generateTexture( graphic );

这是一个演示:http://codepen.io/lonelydatum/pen/eggEje?editors=0010#0