Mobility - A Platformer

Instructions: This is a pretty standard #platformer. Except, instead of controlling the player with the arrow keys, you're doing it with the #mobile-friendly method of touch controls! Use the mouse to move the player. Clicking on the right will move the player to the right, and vice versa for the left. Moving the mouse to the top of the screen will make the player jump. There's a graphic at the beginning to explain. Complete all 10 levels to beat the game. What score did you get?

@Stage\n\nwhen I receive [initialize v]\nset volume to (50) %\nforever\n    play sound [Jolly Jump - by @happybird123 v] until done\nend\n\n@Player\n\nwhen I receive [initialize v]\ngo to x: (-200) y: (-80)\nset [xv v] to [0]\nset [yv v] to [0]\nset [deaths v] to [0]\nshow\nforever\n    if <<(mouse x) > [0]> and <mouse down?>> then\n        change [xv v] by (1)\n    end\n    if <<(mouse x) < [0]> and <mouse down?>> then\n        change [xv v] by (-1)\n    end\n    set [xv v] to ((xV) * (0.9))\n    change x by (xV)\n    if <touching (levels v)?> then\n        change y by (1)\n        if <touching (levels v)?> then\n            change y by (1)\n            if <touching (levels v)?> then\n                change y by (1)\n                if <touching (levels v)?> then\n                    change y by (1)\n                    if <touching (levels v)?> then\n                        change y by (1)\n                        if <touching (levels v)?> then\n                            change x by ((xV) * (-1))\n                            change y by (-5)\n                            set [xv v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-1)\n    change y by (yV)\n    if <touching (levels v)?> then\n        change y by ((yV) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <touching (levels v)?> then\n        if <<(mouse y) > [0]> and <mouse down?>> then\n            set [yv v] to [12]\n        end\n    end\n    change y by (1)\n    if <touching (danger v)?> then\n        change [deaths v] by (1)\n        show variable [deaths v]\n        wait (0.5) seconds\n        set [xv v] to [0]\n        set [yv v] to [0]\n        hide variable [deaths v]\n        go to x: (-200) y: (-80)\n    end\nend\n\nwhen flag clicked\nhide\nhide variable [deaths v]\n\nwhen I receive [levelchange v]\ngo to x: (-200) y: (-80)\nset [xv v] to [0]\nset [yv v] to [0]\n\n@Levels\n\nwhen flag clicked\nset [level v] to [1]\nhide\n\nwhen I receive [initialize v]\ngo to x: (0) y: (0)\nshow\nforever\n    switch costume to (Level)\n    if <([x position v] of [player v]) > [220]> then\n        change [level v] by (1)\n        broadcast (LevelChange v)\n    end\nend\n\n@Danger\n\nwhen flag clicked\nhide\n\nwhen I receive [initialize v]\ngo to x: (0) y: (0)\nshow\nforever\n    switch costume to (Level)\nend\n\n@Lost Phones\n\nwhen flag clicked\nset size to (20) %\nhide\nset [lost phones v] to [0]\nset [moving v] to [0]\nhide variable [lost phones v]\nhide variable [time v]\nhide variable [score v]\nhide variable [☁ highscore v]\n\nwhen I receive [levelchange v]\nif <(Level) = [1]> then\n    hide\nend\nif <(Level) = [2]> then\n    go to x: (-86) y: (121)\n    show\n    Drift [2]\nend\nif <(Level) = [3]> then\n    go to x: (-181) y: (95)\n    show\n    Drift [3]\nend\nif <(Level) = [4]> then\n    hide\nend\nif <(Level) = [5]> then\n    go to x: (-3) y: (168)\n    show\n    Drift [5]\nend\nif <(Level) = [6]> then\n    hide\nend\nif <(Level) = [7]> then\n    go to x: (158) y: (-82)\n    show\n    Drift [7]\nend\nif <(Level) = [8]> then\n    go to x: (-208) y: (51)\n    show\n    Drift [8]\nend\nif <(Level) = [9]> then\n    hide\nend\nif <(Level) = [10]> then\n    go to x: (-154) y: (170)\n    show\n    Drift [10]\nend\nif <(Level) = [11]> then\n    hide\n    show variable [lost phones v]\n    show variable [deaths v]\n    set [time v] to (round (timer))\n    show variable [time v]\n    set [score v] to ((((300) * (Lost Phones)) - ((50) * (Deaths))) - (Time))\n    show variable [score v]\n    if <(Score) > (☁ Highscore)> then\n        set [☁ highscore v] to (Score)\n    end\n    show variable [☁ highscore v]\nend\n\ndefine Drift (level)\nrepeat until <(Level) > (level)>\n    change [moving v] by (3)\n    change y by (([cos v] of (moving) ) / (2))\n    if <touching (player v)?> then\n        hide\n        change [lost phones v] by (1)\n        show variable [lost phones v]\n        wait (1) seconds\n        hide variable [lost phones v]\n    end\nend\n\n@MF Intro\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [brightness v] effect to (-100)\nswitch costume to (mf intro background v)\ngo to [front v] layer\nshow\nrepeat (20)\n    change [brightness v] effect by (5)\nend\ncreate clone of (_myself_ v)\nwait (2) seconds\nrepeat (20)\n    change [brightness v] effect by (-5)\nend\nbroadcast (Initialize v)\nhide\n\nwhen I start as a clone\nset [ghost v] effect to (100)\nswitch costume to (mf intro text v)\ngo to [front v] layer\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nwait (2) seconds\ndelete this clone\n\n@Thumbnail\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nclear graphic effects\n\nwhen I receive [initialize v]\ngo to [front v] layer\nswitch costume to (instructions v)\nshow\nwait until <mouse down?>\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\nclear graphic effects\n\nclear graphic effects\nswitch costume to (thumbnail v)\ngo to [front v] layer\nshow\n\n