From a27edc402c2ad685b84658ff253300aee618c613 Mon Sep 17 00:00:00 2001 From: Viktor Lidholt Date: Thu, 30 Jul 2015 16:04:57 -0700 Subject: [PATCH] Fixes anchor points for particles in particle systems --- .../sky/example/game/lib/particle_system.dart | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/sky/packages/sky/example/game/lib/particle_system.dart b/sky/packages/sky/example/game/lib/particle_system.dart index 5805dc31a..ad1dcbe83 100644 --- a/sky/packages/sky/example/game/lib/particle_system.dart +++ b/sky/packages/sky/example/game/lib/particle_system.dart @@ -300,6 +300,10 @@ class ParticleSystem extends Node { _paint.setTransferMode(transferMode); for (_Particle particle in _particles) { + // Rect + Rect rect = texture.frame; + rects.add(rect); + // Transform double scos; double ssin; @@ -314,13 +318,13 @@ class ParticleSystem extends Node { scos = particle.size; ssin = 0.0; } - RSTransform transform = new RSTransform(scos, ssin, particle.pos[0], particle.pos[1]); + double ax = rect.width / 2; + double ay = rect.height / 2; + double tx = particle.pos[0] + -scos * ax + ssin * ay; + double ty = particle.pos[1] + -ssin * ax - scos * ay; + RSTransform transform = new RSTransform(scos, ssin, tx, ty); transforms.add(transform); - // Rect - Rect rect = texture.frame; - rects.add(rect); - // Color if (particle.simpleColorSequence != null) { Color particleColor = new Color.fromARGB( -- GitLab