~ Classic ~ (A Platformer)

Instructions: Join Top Hat Man on his quest to become Classic. What are the most overused levels of Scratch platformers?\n\n===CONTROLS===\n⬆ or W to jump,\n⬅, ➡, A, or D to move left and right.

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop2 v)\n\n@You\n\ndefine Up\nif <(Touching Ground?) = [True]> then\n    repeat until <<(Touching Ground?) = [False]> or <(y position) > [180]>>\n        change y by (1)\n        Touching Ground?\n    end\nend\nchange y by (-1)\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (hitbox v)\nset size to (200) %\nshow\nset rotation style [left-right v]\npoint in direction (90)\ngo to x: (-240) y: (0)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nforever\n    switch costume to (hitbox v)\n    set rotation style [left-right v]\n    Touching Ground?\n    if <(Touching Ground?) = [True]> then\n        set [y velocity v] to [1]\n    end\n    if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n        change y by (-10)\n        if <(Touching Ground?) = [True]> then\n            set [y velocity v] to [20]\n        end\n        if <touching color (#81ffff)?> then\n            set [y velocity v] to [10]\n        end\n        change y by (10)\n    end\n    if <touching color (#ff3fae)?> then\n        set [y velocity v] to [25]\n    end\n    change y by (1)\n    if <touching color (#81ffff)?> then\n        change [y velocity v] by (-0.1)\n    else\n        change [y velocity v] by (-1)\n    end\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        change [x velocity v] by (1)\n        point in direction (90)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [x velocity v] by (-1)\n        point in direction (-90)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n        set [x velocity v] to ((X Velocity) * (0.9))\n    else\n        set [x velocity v] to ((X Velocity) * (0.7))\n    end\n    change x by (X Velocity)\n    Touching Ground?\n    if <(Touching Ground?) = [True]> then\n        change y by (5)\n    end\n    Touching Ground?\n    if <(Touching Ground?) = [True]> then\n        change y by (-5)\n        change x by ((X Velocity) * (-1))\n        set [x velocity v] to [0]\n    else\n        change y by (-5)\n        Up\n    end\n    Touching Ground?\n    if <(Touching Ground?) = [False]> then\n        switch costume to (hitbox 2 v)\n        Touching Ground?\n        if <(Touching Ground?) = [True]> then\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                if <(Wall- Jumping) = [1]> then\n                    point in direction (90)\n                    broadcast (Walljump Right v)\n                    set [x velocity v] to [5]\n                else\n                    if <(Wall- Jumping) = [2]> then\n                        point in direction (-90)\n                        broadcast (Walljump Left v)\n                        set [x velocity v] to [-5]\n                    else\n                        if <(direction) = [90]> then\n                            point in direction (-90)\n                            broadcast (Walljump Left v)\n                            set [x velocity v] to [-5]\n                        else\n                            point in direction (90)\n                            broadcast (Walljump Right v)\n                            set [x velocity v] to [5]\n                        end\n                    end\n                end\n                set [y velocity v] to [20]\n            end\n        end\n    end\n    switch costume to (hitbox v)\n    change y by (Y Velocity)\n    Touching Ground?\n    if <<(Touching Ground?) = [True]> and <(Y Velocity) > [0]>> then\n        if <(Touching Ground?) = [True]> then\n            change y by ((Y Velocity) * (-1.5))\n            set [y velocity v] to [-1]\n        end\n    end\n    if <not <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>>> then\n        Touching Ground?\n        if <(Touching Ground?) = [True]> then\n            change y by (-10)\n            change x by (10)\n            Touching Ground?\n            if <(Touching Ground?) = [True]> then\n                change x by (-20)\n                Touching Ground?\n                if <(Touching Ground?) = [True]> then\n                    change x by (10)\n                    change y by (10)\n                end\n            end\n        end\n    end\n    Up\n    if <<[-180] > (y position)> or <<touching color (#ff0000)?> or <key (r v) pressed?>>> then\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n        set rotation style [all around v]\n        set [y velocity v] to [15]\n        start sound [Whiz v]\n        switch costume to (costume1 v)\n        repeat until <(y position) < [-170]>\n            turn right (15) degrees\n            change y by (Y Velocity)\n            change [y velocity v] by (-1)\n        end\n        go to x: (-240) y: (0)\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n        point in direction (90)\n        set rotation style [left-right v]\n    end\n    if <touching color (#ffe900)?> then\n        next backdrop\n        go to x: (-240) y: (0)\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n    end\n    if <(Y Velocity) > [1]> then\n        switch costume to (costume8 v)\n        if <(X Velocity) > [1]> then\n            set rotation style [all around v]\n            point in direction ((((timer) * (25)) mod (12)) * (30))\n            if <(((timer) * (25)) mod (10)) < [1]> then\n                start sound [Whiz v]\n            end\n        else\n            if <[-1] > (X Velocity)> then\n                set rotation style [all around v]\n                point in direction ((((timer) * (25)) mod (12)) * (-30))\n                if <(((timer) * (25)) mod (10)) < [1]> then\n                    start sound [Whiz v]\n                end\n            end\n        end\n    else\n        if <[-1] > (Y Velocity)> then\n            switch costume to (costume9 v)\n        else\n            if <<(X Velocity) > [1]> or <(X Velocity) < [-1]>> then\n                switch costume to ((((timer) * (25)) mod (8)) + (2))\n                if <(((timer) * (25)) mod (8)) < [1]> then\n                    start sound [Hand Clap v]\n                end\n            else\n                switch costume to (costume1 v)\n            end\n        end\n    end\nend\n\ndefine Touching Ground?\nif <touching color (#000000)?> then\n    set [touching ground? v] to [True]\nelse\n    set [touching ground? v] to [False]\nend\n\nwhen I receive [walljump left v]\nset [wall- jumping v] to [1]\nrepeat (3)\n    change [x velocity v] by (-5)\n    point in direction (-90)\n    set [x velocity v] to ((X Velocity) * (0.9))\nend\nset [wall- jumping v] to [0]\n\nwhen I receive [walljump right v]\nset [wall- jumping v] to [2]\nrepeat (3)\n    change [x velocity v] by (5)\n    point in direction (90)\n    set [x velocity v] to ((X Velocity) * (0.9))\nend\nset [wall- jumping v] to [0]\n\nwhen I receive [finished level v]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\n@One- Use\n\nwhen flag clicked\nforever\n    glide (2) secs to x: (-200) y: (-95)\n    glide (2) secs to x: (200) y: (-95)\nend\n\nwhen flag clicked\nforever\n    if <(backdrop [number v]) = [42]> then\n        show\n    else\n        hide\n    end\nend\n\n@And a bit.\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    turn right (5) degrees\nend\n\nwhen flag clicked\nforever\n    if <(backdrop [number v]) = [48]> then\n        show\n    else\n        hide\n    end\nend\n\n@Rain\n\nwhen flag clicked\nhide\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\nset [ghost v] effect to (50)\nset size to (pick random (100) to (200)) %\ngo to x: (pick random (-240) to (240)) y: (180)\nrepeat until <(y position) < [-180]>\n    change y by (-50)\nend\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <(backdrop [number v]) = [33]> then\n        show\n    else\n        hide\n    end\nend\n\n@Classic\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nclear graphic effects\nhide\ngo to [front v] layer\nwait until <(backdrop [number v]) = [83]>\nswitch costume to (costume5 v)\nshow\nwait (2) seconds\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\nswitch costume to (costume2 v)\nset [my y v] to [-360]\nrepeat (3)\n    next costume\n    create clone of (_myself_ v)\n    change [my y v] by (-360)\nend\nswitch costume to (costume2 v)\nrepeat (10)\n    change [brightness v] effect by (10)\nend\nwait (5) seconds\nrepeat (100)\n    change [brightness v] effect by (-1)\nend\nswitch costume to (costume5 v)\nwait (2) seconds\nstop [all v]\n\nwhen I start as a clone\nwait (1) seconds\nclear graphic effects\nhide\nrepeat until <[-360] < (My Y)>\n    change [my y v] by (10)\n    set y to (My Y)\nend\ngo to [front v] layer\nshow\nrepeat until <[360] < (My Y)>\n    change [my y v] by (10)\n    set y to (My Y)\nend\ndelete this clone\n\n