38 lines
1.2 KiB
JSON
38 lines
1.2 KiB
JSON
{
|
|
"MaxCount": 200,
|
|
"Drawable": {
|
|
"Type": "SkCircleDrawable",
|
|
"Radius": 8
|
|
},
|
|
"Code": [
|
|
"void effectSpawn(inout Effect effect) {",
|
|
" effect.lifetime = 2;",
|
|
"}",
|
|
"",
|
|
"void effectUpdate(inout Effect effect) {",
|
|
" if (effect.age < 0.25 || effect.age > 0.75) { effect.rate = 0; }",
|
|
" else { effect.rate = 200; }",
|
|
"}",
|
|
"",
|
|
"void spawn(inout Particle p) {",
|
|
" int idx = int(rand(p.seed) * 4);",
|
|
" p.color.rgb = (idx == 0) ? float3(0.87, 0.24, 0.11)",
|
|
" : (idx == 1) ? float3(1.00, 0.90, 0.20)",
|
|
" : (idx == 2) ? float3(0.44, 0.73, 0.24)",
|
|
" : float3(0.38, 0.54, 0.95);",
|
|
"",
|
|
" p.lifetime = (1 - effect.age) * effect.lifetime;",
|
|
" p.scale = mix(0.6, 1, rand(p.seed));",
|
|
"}",
|
|
"",
|
|
"void update(inout Particle p) {",
|
|
" p.color.a = 1 - p.age;",
|
|
"",
|
|
" float a = radians(rand(p.seed) * 360);",
|
|
" float invAge = 1 - p.age;",
|
|
" p.vel = float2(cos(a), sin(a)) * mix(250, 550, rand(p.seed)) * invAge * invAge;",
|
|
"}",
|
|
""
|
|
],
|
|
"Bindings": []
|
|
} |