SLOW || an easy platformer

Instructions: Arrow keys, WASD keys, or mobile controls.\n20 lvl, easy\nclassic platformer\nlove and fav if you enjoyed (follow ?)\n#6 on fr game trendings ! 16/02/22-19/02/22\nFront page fr games trendings ! 16/02/22-02/03/22\nFRANÇAIS\nFlèche, WASD et contrôle mobile\n20 niveaux, facile\nplatformer classique

@Stage\n\n@player\n\nwhen I receive [menu v]\nforever\n    if <touching (obstacles v)?> then\n        broadcast (death v) and wait\n    end\nend\n\nwhen flag clicked\nhide\nhide variable [level v]\nswitch backdrop to (game v)\n\nwhen I receive [start v]\nforever\n    if <<<(x position) = [220]> or <(x position) > [220]>> and <(level) < [20]>> then\n        broadcast (level up v)\n        wait (2) seconds\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <<(y position) = [-170]> or <(y position) < [-170]>> then\n        broadcast (death v) and wait\n    end\nend\n\nwhen I receive [death v]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\ngo to x: (-228) y: (-130)\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\n\nwhen I receive [menu v]\ngo to x: (-228) y: (-130)\nset [level v] to [1]\nshow\nwait (0.05) seconds\nforever\n    set [y v] to [0]\n    set [x v] to [0]\n    forever\n        change [y v] by (-1)\n        set [x v] to ((x) * (0.9))\n        if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n            change [x v] by (-1)\n        end\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            change [x v] by (1)\n        end\n        change x by (x)\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (-4)\n            change x by ((x) * (-1))\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                set [y v] to [10]\n                if <([abs v] of (x) ) = (x)> then\n                    set [x v] to [-4]\n                else\n                    set [x v] to [4]\n                end\n            else\n                set [x v] to [0]\n            end\n        end\n        change y by (y)\n        if <touching (ground v)?> then\n            change y by ((y) - ((y) * (2)))\n            set [y v] to [0]\n        end\n        change y by (-1)\n        if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (ground v)?>> then\n            set [y v] to [15]\n        end\n        change y by (1)\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <<<(x position) = [220]> or <(x position) > [220]>> and <(level) = [20]>> then\n        broadcast (end v)\n        wait (2) seconds\n    end\nend\n\nwhen I receive [level up v]\ngo to x: (-228) y: (-130)\n\nwhen flag clicked\nbroadcast (menu v)\nforever\n    play sound [Inferno v] until done\nend\n\nwhen I receive [end v]\nbroadcast (level up v)\n\n@ground\n\nwhen I receive [start v]\nshow\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (level 1 v)\nshow\n\nwhen I receive [level up v]\nchange [level v] by (1)\nnext costume\n\n@obstacles\n\nwhen I receive [start v]\nshow\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nswitch costume to (level 1 v)\n\nwhen I receive [end v]\nhide\n\nwhen I receive [level up v]\nnext costume\n\n@start button\n\nwhen I receive [start v]\nhide\n\nwhen I receive [menu v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to [front v] layer\n    if <touching (mouse-pointer v)?> then\n        switch costume to (press v)\n    end\n    if <not <touching (mouse-pointer v)?>> then\n        switch costume to (not press v)\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (start v)\n        stop [this script v]\n    end\nend\n\n@skip button\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nshow\ngo to x: (-160) y: (140)\nforever\n    if <touching (mouse-pointer v)?> then\n        switch costume to (press v)\n    end\n    if <not <touching (mouse-pointer v)?>> then\n        switch costume to (not press v)\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (level up v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [level up v]\nwait (0.2) seconds\nshow\ngo to x: (-160) y: (140)\nforever\n    if <touching (mouse-pointer v)?> then\n        switch costume to (press v)\n    end\n    if <not <touching (mouse-pointer v)?>> then\n        switch costume to (not press v)\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (level up v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [end v]\nforever\n    hide\nend\n\n@thumbnail\n\nwhen flag clicked\nhide\n\ngo to x: (0) y: (0)\nclear graphic effects\nshow\ngo to [front v] layer\n\n@title\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nforever\n    repeat (100)\n        change [ghost v] effect by (1)\n    end\n    repeat (100)\n        change [ghost v] effect by (-1)\n    end\nend\n\nwhen I receive [start v]\nhide\n\nwhen I receive [end v]\nset [ghost v] effect to (100)\nshow\n\n