I am starting to use zame-haxe-particles from @restorer and I found problems with FPS with this small piece of code:
class Main extends Sprite
{
private var renderer:ParticleSystemRenderer;
private var particles:Map<Point, ParticleSystem> = new Map<Point, ParticleSystem>();
public function new()
{
super();
renderer = DefaultParticleRenderer.createInstance();
var width:Float = Lib.current.stage.stageWidth;
var height:Float = Lib.current.stage.stageHeight;
for (i in 0...4)
{
var point:Point = new Point(Math.random() * width, Math.random() * height);
var ps:ParticleSystem = ParticleLoader.load("particles/particle.pex");
particles.set(point, ps);
renderer.addParticleSystem(ps);
}
addChild(cast renderer);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
function onEnterFrame(e:Event):Void
{
var iter:Iterator<Point> = particles.keys();
while(iter.hasNext())
{
var point:Point = iter.next();
particles.get(point).emit(point.x, point.y);
}
}
}
The results for FPS were approximately:
Windows = 60
Neko = 10
Flash = 60
Html5 = 150
Android = 10
But looking inside Restorer code if I use this flag
<define name="zameparticles_use_sprite_visibility" />
anything changed.
But just looking around I saw that DefaultParticleRenderer for Android, Neko and Windows is SpritesParticleRenderer but if you change it to TilemapParticleRenderer it goes much faster.
Maybe it would be a good idea to change the default renderer.
I am using
Lime 7.7.0
openfl 9.0.2
haxe 4.1.4