Trail - a platformer starter
@Stage\n\n@Sprite1\n\nwhen flag clicked\nshow\nclear graphic effects\nset size to (100) %\nforever\n    THing\n    Jump\nend\n\nwhen I start as a clone\nswitch costume to (costume2 v)\nrepeat (8)\n    change size by (-8)\n    change [ghost v] effect by (7)\nend\ndelete this clone\n\ndefine THing\nclear graphic effects\nset size to (60) %\nrepeat (10)\n    change [ghost v] effect by (1)\n    change size by (1)\n    create clone of (_myself_ v)\n    change y by ((yVel) / (10))\n    change [yvel v] by (-0.15)\n    UpdateX\n    UpdateCoords\nend\nset size to (49) %\n\nchange y by ((yVel) / (-10))\n\nchange y by (10)\n\nchange [brightness v] effect by (-5)\n\nchange [brightness v] effect by (-0.8)\n\nset size to (100) %\n\nchange [ypos v] by (yVel)\ngo to x: (-76) y: (yPos)\n\nchange x by (1)\nchange x by (-1)\n\ndefine UpdateX\nset [xvel v] to ((xVel) * (0.98))\nif <key (right arrow v) pressed?> then\n    change [xvel v] by (0.2)\nend\nif <key (left arrow v) pressed?> then\n    change [xvel v] by (-0.2)\nend\n\ndefine UpdateCoords\nchange x by ((xVel) / (10))\n\nTHing\n\ndefine Jump\nDrop\nif <<(y position) < [-150]> and <<key (up arrow v) pressed?> or <key (down arrow v) pressed?>>> then\n    set [yvel v] to [20]\nelse\n    if <not <[-150] < (y position)>> then\n        set y to (-150)\n        set [yvel v] to [0]\n    end\nend\nif <(y position) < [-149]> then\n    set [?touchingground? v] to [1]\nelse\n    set [?touchingground? v] to [0]\nend\n\nchange y by (-170)\n\ngo to [front v] layer\n\ngo [backward v] (1) layers\n\ndefine Drop\nif <key (down arrow v) pressed?> then\n    set [yvel v] to [-50]\nend\n\nif <[-40] > (yVel)> then\n    broadcast (Rumble v) and wait\nend\n\n@particles\n\nwhen flag clicked\nforever\n    hide\n    go to (sprite1 v)\n    if <(?touchingGround?) = [1]> then\n        create clone of (_myself_ v)\n        if <<key (up arrow v) pressed?> or <key (down arrow v) pressed?>> then\n            create clone of (_myself_ v)\n            create clone of (_myself_ v)\n            create clone of (_myself_ v)\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I start as a clone\nset [particle1 - clonexvel v] to (pick random (3) to (-3))\nset [particle - cloneyvel v] to (pick random (1) to (2))\nif <<key (up arrow v) pressed?> or <key (down arrow v) pressed?>> then\n    set [particle1 - clonexvel v] to (pick random (-4) to (4))\n    set [particle - cloneyvel v] to (pick random (5.001) to (10.001))\nend\nset size to (pick random (5) to (20)) %\nchange y by (-8)\nshow\nrepeat until <touching (_edge_ v)?>\n    change y by (Particle - CloneYVel)\n    change x by (Particle1 - CloneXVel)\n    set [particle1 - clonexvel v] to ((Particle1 - CloneXVel) * (0.99))\n    change [particle - cloneyvel v] by (-0.3)\nend\ndelete this clone\n\ncreate clone of (_myself_ v)\ncreate clone of (_myself_ v)\ncreate clone of (_myself_ v)\ncreate clone of (_myself_ v)\n\n@Sprite3\n\nwhen flag clicked\nforever\n    if <(?rumble?) = [1]> then\n        go to x: (pick random (-5) to (5)) y: (pick random (-20) to (10))\n    else\n        go to x: (0) y: (0)\n    end\nend\n\nwhen I receive [rumble v]\nset [?rumble? v] to [1]\nwait (0.1) seconds\nset [?rumble? v] to [0]\n\n@Sprite2\n\nwhen flag clicked\nhide\n\n