Grass lands || A platformer 

Instructions: Hello!\n\nMove with arrow keys WASD. It's also mobile friendly\n\nI hope you enjoy it. :)

@Stage\n\nwhen flag clicked\nswitch backdrop to (backround v)\n\n@Player\n\ndefine reset  X (x) Y (y)\ngo to x: (x) y: (y)\nset [y v] to [0]\nset [x v] to [0]\nset rotation style [left-right v]\npoint in direction (90)\nclear graphic effects\n\ndefine Speed (speed) Friction (friction) Gravity (gravity) Jump height (jump height)\nchange [y v] by (gravity)\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>>> then\n    change [x v] by (speed)\n    point in direction (90)\nend\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n    change [x v] by ((speed) * (-1))\n    point in direction (-90)\nend\nset [x v] to ((X) * (friction))\nchange x by (X)\nrepeat (8)\n    change y by <touching (platform v)?>\nend\nif <touching (platform v)?> then\n    change x by (() - (X))\n    change y by (-8)\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(y position) < (mouse y)>>>> then\n        set [y v] to ((jump height) - (3))\n        set [x v] to ((5) - ((14) * <[0] < (X)>))\n    end\nend\nchange y by (Y)\nif <touching (platform v)?> then\n    change y by ((Y) * (-1))\n    set [y v] to [0]\nend\nchange y by (-1)\nif <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(y position) < (mouse y)>>>> then\n    if <touching (platform v)?> then\n        set [y v] to (jump height)\n    end\nend\nchange y by (1)\nif <<key (down arrow v) pressed?> or <<key (s v) pressed?> or <<mouse down?> and <(mouse y) < (y position)>>>> then\n    switch costume to (player2 v)\nelse\n    switch costume to (player v)\nend\n\nwhen backdrop switches to [thumbnail v]\nhide\n\nwhen flag clicked\nhide\n\nwhen I receive [intro over v]\nshow\nreset  X [-200] Y [0]\nset [ok v] to [0]\nset [level v] to [1]\nforever\n    if <(ok) = [0]> then\n        Speed [1] Friction [0.88] Gravity [-1] Jump height [13]\n        if <touching (spikes v)?> then\n            set [ok v] to [1]\n            set rotation style [all around v]\n            set [y v] to [10]\n            start sound [Crunch v]\n            repeat (20)\n                change [y v] by (-1)\n                change [ghost v] effect by (5)\n                turn right (8) degrees\n                change y by (Y)\n            end\n            set [ok v] to [0]\n            reset  X [-200] Y [0]\n        end\n    end\n    if <[240] < (x position)> then\n        change [level v] by (1)\n        reset  X [-200] Y [0]\n    end\nend\n\n@Platform\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [thumbnail v]\nhide\n\nwhen I receive [intro over v]\nshow\nwait (0.1) seconds\ngo to [front v] layer\nforever\n    switch costume to (level)\nend\n\n@spikes\n\nwhen flag clicked\nshow\ngo to [front v] layer\nforever\n    switch costume to (level)\nend\n\nwhen backdrop switches to [thumbnail v]\nhide\n\n@background\n\nwhen flag clicked\ngo to [front v] layer\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [thumbnail v]\nhide\n\nwhen I receive [intro over v]\nshow\nforever\n    play sound [Backround Music v] until done\nend\n\n@Figur2\n\nhide\nwait (0.1) seconds\n\nwhen flag clicked\nswitch costume to (kostüm1 v)\ngo to [front v] layer\nset size to (100) %\nclear graphic effects\nwait (2.8) seconds\nshow\npoint in direction (90)\nwait (.25) seconds\nrepeat (3)\n    turn right (32) degrees\nend\nrepeat until <(round (direction)) = (round (90))>\n    turn right (((90) - (direction)) / (5)) degrees\nend\nshow\npoint in direction (90)\nwait (.25) seconds\nrepeat (3)\n    turn right (32) degrees\nend\nrepeat until <(round (direction)) = (round (90))>\n    turn right (((90) - (direction)) / (5)) degrees\nend\nshow\npoint in direction (90)\nwait (.25) seconds\nrepeat (3)\n    turn right (32) degrees\nend\nrepeat until <(round (direction)) = (round (90))>\n    turn right (((90) - (direction)) / (5)) degrees\nend\nturn right (180) degrees\nwait (0.2) seconds\nturn right (180) degrees\nwait (0.2) seconds\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nshow\nswitch costume to (kostüm1 v)\nrepeat (6)\n    next costume\n    wait (0.02) seconds\nend\n\nhide\n\n@Figur3\n\nwhen flag clicked\nwait (3) seconds\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\n\n@Figur4\n\nwhen flag clicked\nhide\nwait (0.1) seconds\nshow\nswitch costume to (kostüm1 v)\nrepeat (20)\n    next costume\n    wait (0.02) seconds\nend\n\n@Figur5\n\nwhen flag clicked\nwait (4.5) seconds\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\n\n@Figur6\n\nwhen flag clicked\nwait (5.5) seconds\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\nswitch costume to (shockwave 1 v)\nclear graphic effects\nshow\nset size to (0) %\nrepeat (5)\n    next costume\n    change size by (((250) - (size)) / (5))\nend\nrepeat (7)\n    next costume\n    change size by (((250) - (size)) / (5))\n    change [ghost v] effect by (10)\nend\nhide\n\n@Figur7\n\nwhen flag clicked\nhide\nwait (7.5) seconds\nshow\nswitch costume to (kostüm1 v)\nrepeat (18)\n    next costume\n    wait (0.02) seconds\nend\nwait (3) seconds\nbroadcast (Intro over v)\nhide\n\n@Figur1\n\nwhen flag clicked\nshow\ngo to [back v] layer\nstart sound [Vexento - Return of the Heroes2 v]\nswitch costume to (intro backround v)\ngo to x: (-8) y: (-356)\nglide (13) secs to x: (-8) y: (51)\n\nwhen I receive [intro over v]\nstop [other scripts in sprite v]\nswitch costume to (sky platformer v)\n\ngo to [back v] layer\n\nwhen flag clicked\nwait (1) seconds\ngo to [back v] layer\nforever\n\n