1cb93a386Sopenharmony_ci{ 2cb93a386Sopenharmony_ci "MaxCount": 2000, 3cb93a386Sopenharmony_ci "Drawable": { 4cb93a386Sopenharmony_ci "Type": "SkCircleDrawable", 5cb93a386Sopenharmony_ci "Radius": 4 6cb93a386Sopenharmony_ci }, 7cb93a386Sopenharmony_ci "Code": [ 8cb93a386Sopenharmony_ci "uniform float2 mouse_pos;", 9cb93a386Sopenharmony_ci "", 10cb93a386Sopenharmony_ci "void effectSpawn(inout Effect effect) {", 11cb93a386Sopenharmony_ci " effect.rate = 500;", 12cb93a386Sopenharmony_ci "}", 13cb93a386Sopenharmony_ci "", 14cb93a386Sopenharmony_ci "void effectUpdate(inout Effect effect) {", 15cb93a386Sopenharmony_ci " effect.pos = mouse_pos;", 16cb93a386Sopenharmony_ci "}", 17cb93a386Sopenharmony_ci "", 18cb93a386Sopenharmony_ci "void spawn(inout Particle p) {", 19cb93a386Sopenharmony_ci " p.lifetime = 2 + rand(p.seed);", 20cb93a386Sopenharmony_ci " p.vel.y = (20 * rand(p.seed)) - 10;", 21cb93a386Sopenharmony_ci "}", 22cb93a386Sopenharmony_ci "", 23cb93a386Sopenharmony_ci "void update(inout Particle p) {", 24cb93a386Sopenharmony_ci " p.color.r = p.age;", 25cb93a386Sopenharmony_ci " p.color.g = 1 - p.age;", 26cb93a386Sopenharmony_ci " float s1 = 0.5 + (1.5 * p.age);", 27cb93a386Sopenharmony_ci " float s2 = 1.0 + (-0.75 * p.age);", 28cb93a386Sopenharmony_ci " p.scale = (s1 + (s2 - s1) * rand(p.seed)) * 0.5;", 29cb93a386Sopenharmony_ci " p.vel.y += 20.0 * dt;", 30cb93a386Sopenharmony_ci "}", 31cb93a386Sopenharmony_ci "" 32cb93a386Sopenharmony_ci ], 33cb93a386Sopenharmony_ci "Bindings": [] 34cb93a386Sopenharmony_ci}