Shapes | A Platformer

Instructions: Yay, a platformer! Decided to just share something quickly with better art. \n\nGet to the portal (blue circle) to complete the level.\n\nSPAM THE FLAG. If you don't the portal won't spawn correctly.\n\n12 levels! (I might add more in a later version!)\n\nArrow keys or WASD. \ns to skip level. r to restart level. m to mute/unmute.\n\nPlease consider giving support in the form of a like, fav or follow!\n\nIf there are any glitches, please share them with me. 

@Stage\n\nwhen I receive [fade v]\nwait (1) seconds\nnext backdrop\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\n@Player\n\nwhen flag clicked\ngo to x: (-203) y: (85)\nswitch backdrop to (backdrop1 v)\nset [speed y v] to [0]\nforever\n    set rotation style [left-right v]\n    if <touching (bouncy v)?> then\n        set [speed y v] to [20]\n        set [falling? v] to [6]\n        set [jump key v] to [1]\n    end\n    if <(movable?) = [true]> then\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <(falling?) < [3]>> then\n            change [speed y v] by (14)\n            set [falling? v] to [6]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n        set [speed x v] to ((0.7) * (speed x))\n        if <(wall jump) > [0]> then\n            change [wall jump v] by (-1)\n        else\n            if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n                change [speed x v] by (-3)\n            end\n            if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n                change [speed x v] by (3)\n            end\n        end\n    end\n    if <(speed x) < [-0.5]> then\n        Walk [-90] (speed x)\n    else\n        if <(speed x) > [0.5]> then\n            Walk [90] (speed x)\n        end\n    end\n    change y by (speed y)\n    change [speed y v] by (-1)\n    Touch Ground <(speed y) > [0]>\n    if <touching (end v)?> then\n        if <(backdrop [number v]) = [11]> then\n            broadcast (superfade v)\n            wait (0.7) seconds\n            go to x: (-203) y: (-100)\n        else\n            broadcast (fade v)\n            set [speed y v] to [0]\n            set [speed x v] to [0]\n            wait (1.2) seconds\n            go to x: (-203) y: (-100)\n        end\n    end\n    if <touching (bad v)?> then\n        repeat (5)\n            change size by (-20)\n        end\n        set [speed y v] to [0]\n        go to x: (-203) y: (-100)\n        repeat (2)\n            change size by (50)\n        end\n        set size to (100) %\n    end\nend\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <touching (ground v)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <touching (ground v)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <[3] < ([abs v] of (speed) )>> then\n        set [speed x v] to ((-2) * (speed))\n        set [speed y v] to [11]\n        set [falling? v] to [6]\n        set [wall jump v] to [10]\n    else\n        set [speed x v] to [0]\n    end\nend\n\nwhen [r v] key pressed\nrepeat (5)\n    change size by (-20)\nend\ngo to x: (-203) y: (-100)\nrepeat (2)\n    change size by (50)\nend\nset size to (100) %\n\nwhen flag clicked\nset [spam v] to [1]\nset volume to (100) %\nforever\n    play sound [Alan Walker - Faded v] until done\nend\n\nwhen [m v] key pressed\nif <(volume) = [100]> then\n    set volume to (0) %\nelse\n    set volume to (100) %\nend\n\nwhen [s v] key pressed\nif <not <(backdrop [number v]) = [11]>> then\n    if <(spam) = [1]> then\n        set [spam v] to [0]\n        broadcast (fade v)\n        go to x: (-203) y: (-100)\n        wait (1) seconds\n        set [spam v] to [1]\n    end\nelse\n    broadcast (show warning v)\nend\n\nif <touching (mouse-pointer v)?> then\n\nchange [speed y v] by (25)\n\ndefine Go to level (id)\nset [level v] to (id)\nbroadcast (levelchange v) and wait\n\nGo to level [11]\n\n@Ground\n\nwhen I receive [message1 v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [levelchange v]\nswitch costume to (level)\n\n@Bad\n\nwhen I receive [message1 v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [levelchange v]\nswitch costume to (level)\n\n@End\n\nwhen I receive [message1 v]\nnext costume\n\nwhen flag clicked\ngo to x: (34) y: (-11)\nset size to (80) %\nswitch costume to (costume5 v)\n\nwhen I receive [levelchange v]\nswitch costume to (level)\n\n@Bouncy\n\nwhen flag clicked\nswitch costume to (costume2 v)\n\nwhen I receive [message1 v]\nnext costume\n\nwhen I receive [levelchange v]\nswitch costume to (level)\n\n@Shadow\n\nwhen flag clicked\nswitch costume to (costume2 v)\nforever\n    go to [back v] layer\nend\n\nwhen I receive [message1 v]\nnext costume\n\nwhen I receive [levelchange v]\nswitch costume to (level)\n\n@Transition\n\nwhen I receive [fade v]\nset [movable? v] to [false]\nclear graphic effects\nswitch costume to (costume1 v)\npoint in direction (90)\ngo to [front v] layer\nshow\nset size to (2) %\nrepeat (7)\n    change size by (14)\nend\nbroadcast (message1 v)\nwait (1) seconds\nrepeat (20)\n    turn right (9) degrees\nend\nrepeat (7)\n    change size by (-14)\nend\nhide\nset [movable? v] to [true]\n\nwhen flag clicked\nset [movable? v] to [true]\npoint in direction (90)\nhide\n\nwhen I receive [superfade v]\nset [ghost v] effect to (0)\nswitch costume to (costume2 v)\npoint in direction (90)\ngo to [front v] layer\nshow\nset size to (2) %\nrepeat (7)\n    change size by (14)\nend\nnext backdrop\nbroadcast (message1 v)\nwait (3) seconds\nrepeat (100)\n    change [ghost v] effect by (1)\nend\nhide\n\n@Sprite1\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n