Commit 59225088 authored by Viktor Lidholt's avatar Viktor Lidholt

Adds opacity property to particle systems

parent 024cc2ca
...@@ -151,6 +151,8 @@ class ParticleSystem extends Node { ...@@ -151,6 +151,8 @@ class ParticleSystem extends Node {
double _emitCounter; double _emitCounter;
int _numEmittedParticles = 0; int _numEmittedParticles = 0;
double opacity = 1.0;
static Paint _paint = new Paint() static Paint _paint = new Paint()
..filterQuality = ui.FilterQuality.low ..filterQuality = ui.FilterQuality.low
..isAntiAlias = false; ..isAntiAlias = false;
...@@ -358,6 +360,7 @@ class ParticleSystem extends Node { ...@@ -358,6 +360,7 @@ class ParticleSystem extends Node {
} }
void paint(Canvas canvas) { void paint(Canvas canvas) {
if (opacity == 0.0) return;
List<ui.RSTransform> transforms = <ui.RSTransform>[]; List<ui.RSTransform> transforms = <ui.RSTransform>[];
List<Rect> rects = <Rect>[]; List<Rect> rects = <Rect>[];
...@@ -394,7 +397,7 @@ class ParticleSystem extends Node { ...@@ -394,7 +397,7 @@ class ParticleSystem extends Node {
// Color // Color
if (particle.simpleColorSequence != null) { if (particle.simpleColorSequence != null) {
Color particleColor = new Color.fromARGB( Color particleColor = new Color.fromARGB(
particle.simpleColorSequence[0].toInt().clamp(0, 255), (particle.simpleColorSequence[0] * opacity).toInt().clamp(0, 255),
particle.simpleColorSequence[1].toInt().clamp(0, 255), particle.simpleColorSequence[1].toInt().clamp(0, 255),
particle.simpleColorSequence[2].toInt().clamp(0, 255), particle.simpleColorSequence[2].toInt().clamp(0, 255),
particle.simpleColorSequence[3].toInt().clamp(0, 255)); particle.simpleColorSequence[3].toInt().clamp(0, 255));
...@@ -406,6 +409,9 @@ class ParticleSystem extends Node { ...@@ -406,6 +409,9 @@ class ParticleSystem extends Node {
} else { } else {
particleColor = colorSequence.colorAtPosition(particle.colorPos); particleColor = colorSequence.colorAtPosition(particle.colorPos);
} }
if (opacity != 1.0) {
particleColor = particleColor.withAlpha((particleColor.alpha * opacity).toInt().clamp(0, 255));
}
colors.add(particleColor); colors.add(particleColor);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment