Simple 2 - A  Mobile platformer

Instructions: ⭐Simple 2⭐\n    ⭐Please love & fav!⭐\n\nHello and welcome to my very first clicker game called Simple. It’s a simple game with lots of generic features and a level-select menu. This project is made possible with nearly 3 hours of hard work. I should be very happy if you leave a ❤️ & ⭐️ and maybe even a follow. Enjoy the game! :)\n\nMore Games that I made!:\nDREM: https://scratch.mit.edu/projects/790721248\nFISCH: https://scratch.mit.edu/projects/789703374\nGeo 2:   https://scratch.mit.edu/projects/786297796\nRorope:  https://scratch.mit.edu/projects/788070909\nShadow cat: https://scratch.mit.edu/projects/778489142\n\n♫  SZA - Forgiveless [Instrumental] ♫\n\n90% of the code is by me\nIntro by @1mperfect\n

@Stage\n\n@Player\n\ndefine Y Collision\nif <touching (level v)?> then\n    repeat until <not <touching (level v)?>>\n        change y by ((([abs v] of (YV) ) / (YV)) * (-1))\n    end\n    set [yv v] to [0]\nend\n\ndefine X Collision\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (-8)\n    repeat until <not <touching (level v)?>>\n        change x by ((([abs v] of (XV) ) / (XV)) * (-1))\n    end\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > (y position)> and <mouse down?>>> then\n        if <(XV) < [0]> then\n            set [xv v] to ((Speed) * (6))\n        else\n            broadcast (Jump v)\n            set [xv v] to ((Speed) * (-6))\n        end\n        set [yv v] to ((Jump Height) - (3))\n    else\n        set [xv v] to [0]\n    end\nend\n\ndefine Jump Height Variation\nif <<(YV) > [0]> and <not <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > (y position)> and <mouse down?>>>>> then\n    change [yv v] by (-0.9)\nend\n\nwhen flag clicked\nhide\n\nshow\n\nbroadcast (Run Platformer by @RadarX/@RadarY v)\n\nwhen I receive [run platformer by @radarx/@radary v]\nset [game state v] to [Playing]\nforever\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<(mouse x) > (x position)> and <mouse down?>>> then\n        change [xv v] by (Speed)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<(mouse x) < (x position)> and <mouse down?>>> then\n        change [xv v] by ((Speed) * (-1))\n    end\n    set [xv v] to ((XV) * (Friction))\n    change x by (XV)\n    X Collision\n    change [yv v] by ((Gravity) * (-1))\n    change y by (YV)\n    Y Collision\n    change y by (-1)\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > (y position)> and <mouse down?>>> and <touching (level v)?>> then\n        broadcast (Jump v)\n        set [yv v] to (Jump Height)\n    end\n    change y by (1)\n    Jump Height Variation\nend\n\nwhen I receive [run platformer by @radarx/@radary v]\nshow\nforever\n    if <(x position) > [230]> then\n        broadcast (Next v)\n        change [lvl v] by (1)\n        Reset\n    end\n    if <touching (tramp v)?> then\n        set [yv v] to [35]\n        broadcast (Bounce v)\n    end\n    if <<<touching (spikes v)?> or <touching (lava v)?>> or <(y position) < [-170]>> then\n        Reset\n        broadcast (Death v)\n    end\n    if <touching (lava v)?> then\n        Reset\n        broadcast (Death v)\n    end\n    if <(y position) < [-170]> then\n        Reset\n        broadcast (Death v)\n    end\nend\n\ndefine Reset\ngo to x: (-200) y: (0)\nset [xv v] to [0]\nset [yv v] to [0]\n\nwhen I receive [run platformer by @radarx/@radary v]\nclear graphic effects\nset [speed v] to [2]\nset [friction v] to [0.8]\nset [jump height v] to [15]\nset [gravity v] to [1]\nset [lvl v] to [1]\ngo to [front v] layer\nset size to (100) %\nReset\n\nwhen flag clicked\nbroadcast (Run Platformer by @RadarX/@RadarY v)\n\n@Level\n\nwhen flag clicked\nforever\n    switch costume to (Lvl)\nend\n\n@Spikes\n\nwhen flag clicked\nforever\n    switch costume to (Lvl)\nend\n\n@Lava\n\nwhen flag clicked\nforever\n    go to x: (0) y: (([sin v] of ((timer) * (100)) ) * (6))\nend\n\nwhen flag clicked\nforever\n    switch costume to (Lvl)\nend\n\n@Text\n\nwhen flag clicked\nforever\n    go to x: (0) y: ((([sin v] of ((timer) * (100)) ) * (5)) + (150))\nend\n\nwhen flag clicked\nforever\n    switch costume to (Lvl)\nend\n\n@Tramp\n\nwhen flag clicked\nforever\n    switch costume to (Lvl)\nend\n\n@Sound\n\nwhen I receive [run platformer by @radarx/@radary v]\nclear sound effects\n\nwhen I receive [bounce v]\nplay sound [Bounce v] until done\n\nwhen I receive [death v]\nplay sound [Referee Whistle v] until done\n\nwhen I receive [jump v]\nset volume to (70) %\nplay sound [jump1 v] until done\n\nwhen I receive [next v]\nset volume to (70) %\nplay sound [Checkpoint v] until done\n\nwhen I receive [hit floor v]\nset volume to (70) %\nplay sound [thump soft v] until done\n\nwhen flag clicked\nplay sound [Y2Mate2 v] until done\n\n@Level Select\n\nwhen I receive [level select v]\nset [game state v] to [No]\nshow\nswitch costume to (play button v)\ngo to [front v] layer\nshow variable [lvl v]\ncreate clone of (_myself_ v)\n\nwhen I receive [run platformer by @radarx/@radary v]\nhide variable [lvl v]\nhide\n\nwhen I receive [menu v]\nhide variable [lvl v]\nhide\n\nwhen I receive [start v]\nhide variable [lvl v]\nhide\n\nwhen I start as a clone\nif <<(Game State) = [Level Select]> and <(Clone ID) = [BG]>> then\n    forever\n        switch costume to (bg v)\n        go to [front v] layer\n        go [backward v] (1) layers\n        if <not <(Game State) = [Level Select]>> then\n            delete this clone\n        end\n    end\nend\n\nwhen I start as a clone\nshow\nswitch costume to (bg v)\ngo to [front v] layer\ngo [backward v] (1) layers\n\nshow\n\nwhen I receive [run platformer by @radarx/@radary v]\nforever\n    go to [front v] layer\n    point in direction ((([sin v] of ((timer) * (100)) ) * (10)) + (90))\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (50)\n        change size by (((215) - (size)) / (3))\n    else\n        set [brightness v] effect to (0)\n        change size by (((200) - (size)) / (3))\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        set [game state v] to [Playing]\n    end\n    if <(Game State) = [Playing]> then\n        hide variable [lvl v]\n        hide\n    end\n    if <not <(Game State) = [Playing]>> then\n        show\n    end\nend\n\nbroadcast (Level Select v)\n\nwhen I start as a clone\nforever\n    if <(Game State) = [Playing]> then\n        hide\n    end\n    if <not <(Game State) = [Playing]>> then\n        show\n    end\nend\n\nhide variable [lvl v]\n\n@Menu\n\nwhen I receive [run platformer by @radarx/@radary v]\ngo to x: (-220) y: (160)\nforever\n    if <(Game State) = [Playing]> then\n        show\n    end\n    if <not <(Game State) = [Playing]>> then\n        hide\n    end\n    go to [front v] layer\n    point in direction ((([sin v] of ((timer) * (100)) ) * (10)) + (90))\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (50)\n        change size by (((115) - (size)) / (3))\n    else\n        set [brightness v] effect to (0)\n        change size by (((100) - (size)) / (3))\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Level Select v)\n    end\nend\n\n@Toenail\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\n\n