Sides (a platformer)-Contest Entry 

Instructions: For the contest. Use arrow keys/WASD to move. \n13 fun + challenging levels.\nBlack-regular\nRed-Bad\nPurple\nI WILL ADD MORE\n

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [nextlevel v]\nnext backdrop\n\nwhen flag clicked\nforever\n    play sound [Suspense Music v] until done\nend\n\n@Player\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nset size to (100) %\npoint in direction (90)\ngo to x: (-218) y: (-52)\nshow\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        point in direction (90)\n        change [xv v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        point in direction (-90)\n        change [xv v] by (-1)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching color (#000000)?> then\n        change y by (1)\n        if <touching color (#000000)?> then\n            change y by (1)\n            if <touching color (#000000)?> then\n                change y by (1)\n                if <touching color (#000000)?> then\n                    change y by (1)\n                    if <touching color (#000000)?> then\n                        change y by (1)\n                        if <touching color (#000000)?> then\n                            change x by ((Xv) * (-1))\n                            change y by (-5)\n                            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-5]\n                                else\n                                    set [xv v] to [5]\n                                end\n                                set [yv v] to [12.6]\n                            else\n                                set [xv v] to [0]\n                            end\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 color (#000000)?> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <touching color (#000000)?> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            set [yv v] to [12.6]\n        end\n    end\n    if <touching color (#7f00ff)?> then\n        set [yv v] to [20]\n    end\n    change y by (1)\n    if <touching color (#ff0000)?> then\n        go to x: (-218) y: (-52)\n        set size to (100) %\n        set [xv v] to [0]\n        set [yv v] to [0]\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <touching color (#00ff55)?> then\n        go to x: (-218) y: (-52)\n        broadcast (NextLevel v)\n    end\n    if <key (r v) pressed?> then\n        go to x: (-218) y: (-52)\n        set size to (100) %\n        set [xv v] to [0]\n        set [yv v] to [0]\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(x position) > [240]> then\n        set x to (-240)\n        if <not <touching color (#ff0000)?>> then\n            if <<touching color (#000000)?> and <not <touching color (#ffffff)?>>> then\n                set x to (240)\n            end\n        end\n    end\n    if <(x position) < [-240]> then\n        set x to (240)\n        if <not <touching color (#ff0000)?>> then\n            if <<touching color (#000000)?> and <not <touching color (#ffffff)?>>> then\n                set x to (-240)\n            end\n        end\n    end\n    if <(y position) < [-178]> then\n        set y to (178)\n        if <not <touching color (#ff0000)?>> then\n            if <<touching color (#000000)?> and <not <touching color (#ffffff)?>>> then\n                set y to (-178)\n            end\n        end\n    end\n    if <(y position) > [178]> then\n        set y to (-178)\n        if <not <touching color (#ff0000)?>> then\n            if <<touching color (#000000)?> and <not <touching color (#ffffff)?>>> then\n                set y to (178)\n            end\n        end\n    end\nend\n\n@Title\n\nwhen I receive [start v]\nhide\n\nwhen I receive [screen v]\ngo to x: (-304) y: (104)\nshow\nforever\n    go to [front v] layer\n    glide (0.2) secs to x: (-100) y: (104)\n    glide (1) secs to x: (100) y: (104)\n    glide (0.2) secs to x: (304) y: (104)\n    go to x: (-304) y: (104)\nend\n\nwhen flag clicked\nhide\n\n@Play?\n\nwhen I receive [start v]\nhide\n\nwhen I receive [screen v]\nshow\nforever\n    go to [front v] layer\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Start v)\n    end\nend\n\nwhen flag clicked\nhide\n\n@Screen\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\n\nwhen I receive [start v]\nhide\n\n@Screen2\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nshow\ngo to [front v] layer\n\n@Logo\n\nwhen flag clicked\ngo to x: (0) y: (180)\nset size to (100) %\npoint in direction (90)\nshow\nset [logospin v] to [0]\nset [logofade? v] to [0]\nrepeat (5)\n    change y by (-15)\nend\nrepeat (5)\n    change y by (-20)\nend\nrepeat (5)\n    change y by (-25)\nend\nrepeat (5)\n    change y by (-20)\nend\nrepeat (5)\n    change y by (20)\nend\nrepeat (5)\n    change y by (25)\nend\nrepeat (5)\n    change y by (5)\nend\nrepeat (5)\n    change y by (-10)\nend\nbroadcast (logoname v)\n\nwhen I receive [logo1 v]\nrepeat (5)\n    change size by (10)\nend\nplay drum (1 v) for (0.25) beats\nrepeat (3)\n    change size by (-5)\nend\nplay drum (1 v) for (0.25) beats\nrepeat (5)\n    change size by (10)\nend\nrepeat (10)\n    change size by (5)\nend\n\nwhen I start as a clone\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I start as a clone\nshow\nset size to (100) %\nswitch costume to (pick random (2) to (4))\nturn right (pick random (-360) to (360)) degrees\nforever\n    move (20) steps\n    if on edge, bounce\nend\n\nwhen I receive [logoname v]\nrepeat (10)\n    change size by (10)\nend\n\nwhen I receive [resize v]\nrepeat (10)\n    change size by (-10)\nend\n\nwhen I receive [logosounds v]\nplay drum (1 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (3 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (5 v) for (0.25) beats\nplay drum (11 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (6 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (7 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (9 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (10 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (10 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (12 v) for (0.25) beats\n\nwhen I receive [logosounds v]\n\nwhen I receive [logosounds v]\nplay drum (14 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (8 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (11 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (4 v) for (0.25) beats\n\nwhen I receive [logosounds v]\nplay drum (2 v) for (0.25) beats\n\nwhen I receive [logo1 v]\nrepeat (8)\n    turn right (3) degrees\nend\nrepeat (5)\n    turn right (-10) degrees\nend\nrepeat (10)\n    turn right (-3) degrees\nend\nrepeat (75)\n    change [logospin v] by (1)\n    turn right (logospin) degrees\nend\nbroadcast (logosounds v)\nrepeat (100)\n    create clone of (_myself_ v)\n    set size to (-3) %\n    if <(size) < [10]> then\n        hide\n    end\nend\nwait (1) seconds\nset [logofade? v] to [1]\nwait (1) seconds\nbroadcast (screen v)\n\n@name\n\nwhen flag clicked\nhide\ngo to x: (-300) y: (-87)\n\nwhen I receive [logoname v]\nshow\nglide (0.2) secs to x: (-65) y: (-87)\nglide (1.5) secs to x: (40) y: (-87)\nbroadcast (resize v)\nglide (0.2) secs to x: (300) y: (-87)\nhide\nbroadcast (logo1 v)\n\n