1{ 2 "MaxCount": 32, 3 "Duration": 1, 4 "Rate": 0.5, 5 "Drawable": { 6 "Type": "SkImageDrawable", 7 "Path": "resources/images/baby_tux.png", 8 "Columns": 1, 9 "Rows": 1 10 }, 11 "Code": [ 12 "// float rand; Every read returns a random float [0 .. 1)", 13 "layout(ctype=float) in uniform float dt;", 14 "layout(ctype=float) in uniform float effectAge;", 15 "", 16 "struct Particle {", 17 " float age;", 18 " float lifetime;", 19 " float2 pos;", 20 " float2 dir;", 21 " float scale;", 22 " float2 vel;", 23 " float spin;", 24 " float4 color;", 25 " float frame;", 26 "};", 27 "", 28 "void spawn(inout Particle p) {", 29 " p.lifetime = 20;", 30 " float a = radians(10 + 60 * rand);", 31 " float s = 140 + rand * 60;", 32 " p.vel.x = cos(a) * s;", 33 " p.vel.y = -sin(a) * s;", 34 "}", 35 "", 36 "void update(inout Particle p) {", 37 " p.vel.y += 50 * dt;", 38 " p.dir = normalize(p.vel);", 39 "}", 40 "" 41 ], 42 "Bindings": [] 43}