Color || Platformer ~ Part 1 - The Forest

Instructions: ~~~~~~~~~~~ COLOR -- A PLATFORMER ~~~~~~~~\n \n         Welcome to Color -- A Platformer ~ Part 1! This simple, colorless, and generic platformer is a medium difficulty in which you must complete all 20 levels as fast as possible. 15 loves or 100 views, and I will make Part 2 early!!!!!! \n(Whoever gives the 100th love will get a free follow by me, as well)\n100 loves! And the free follow goes to......\n@mistake44!\n\nNEW GAME OUT!!!\nhttps://scratch.mit.edu/projects/931993602/\n\nPARTS:\nPart 2: https://scratch.mit.edu/projects/761062689/\nPart 3: https://scratch.mit.edu/projects/764015660/\nPart 4: https://scratch.mit.edu/projects/767616243/\nPart 5: https://scratch.mit.edu/projects/772220853/\n\nCOLOR 2 SERIES:\nPart 1: https://scratch.mit.edu/projects/823176480/\nPart 2: https://scratch.mit.edu/projects/921559305/\n\nWARNING: Intro may trigger seizures. If you are prone to these, then press the 'skip intro' button.\n\nSTORY :\nAt one point in time (just a few months ago), the Cube World was a peaceful and colorful land to live in. But, as November came, a dragon on the East Hills awoke, and immediately attacked the entire land, one city after another. When he reached and attacked Michelangelo City, he destroyed the Pillar of Color, making the world colorless. You must collect all the Color Gems to restore color to the land. Can you do it?\n\nINSTRUCTIONS :\nWASD, arrow keys, or touch screen to move\nS, down arrow, or touch screen below player to crouch\nAvoid colorless spikes and lava\nTouch the green gem at the end to win\nTry to finish as fast as possible\nLove, favorite, and follow for Part 2\nEnjoy\n\nNOTES :\nThere is a very rare bug where when you start the game, the time doesn't work, and doesn't activate at all. Please don't take advantage of this and finish the game, then comment that you got 0 seconds. Just restart.\nAlso, sometimes, the green gem appears on level 1. Just restart the game when this happens. It happens very rarely as well.\nComment 'Forest' for Part 2 ~ The Desert to come out early. If this game gets 15 loves before 10 days are up, then I will start Part 2 right away, so love and favorite as well.\n\nCREDITS :\nThanks to @kamakiri1023 for the player code and art\nThanks to @Pickleanimation99 for the intro\nThanks to @ArtemScrathMaster for the music\nI did everything else!!!!\n\nThis is my very first platformer I have ever made on this account, so please love, favorite, and follow. Comment 'Forest' for Part 2, and I hope you enjoy!!!!!!\n\n(822 blocks make up this game.)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nYeet

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [start! v]\nswitch backdrop to (backdrop2 v)\n\nwhen I receive [start! v]\nwait (1) seconds\nforever\n    play sound [TheFatRat - Time Lapse v] until done\nend\n\nwhen I receive [play v]\nforever\n    if <<(level) = [12]> or <(level) > [18]>> then\n        switch backdrop to (backdrop3 v)\n    else\n        switch backdrop to (backdrop2 v)\n    end\nend\n\n@Intro\n\nwhen flag clicked\nhide\nwait (1) seconds\nstart sound [Techno2 v]\nwait (.5) seconds\nset [id v] to [BG]\ncreate clone of (_myself_ v)\nwait (.7) seconds\nset [id v] to [Text]\nstart sound [Trap Beat v]\ncreate clone of (_myself_ v)\nwait () seconds\nset [id v] to [Flash]\ncreate clone of (_myself_ v)\nwait () seconds\nset [id v] to [Bars]\ncreate clone of (_myself_ v)\nwait () seconds\npoint in direction (90)\nset [id v] to [Explosion]\nclear graphic effects\nset [my variable v] to [No]\nrepeat (7)\n    set [brightness v] effect to (100)\n    create clone of (_myself_ v)\n    turn right (25) degrees\n    set [brightness v] effect to (-50)\n    create clone of (_myself_ v)\n    turn right (25) degrees\nend\nset [my variable v] to [Yes]\nwait () seconds\nset [id v] to [SpinThing]\ncreate clone of (_myself_ v)\nwait () seconds\nset [my variable v] to [No]\nset [id v] to [Circlesss]\ngo to x: (-200) y: (125)\nrepeat (4)\n    repeat (6)\n        create clone of (_myself_ v)\n        change x by (81)\n    end\n    set x to (-200)\n    change y by (-81)\nend\nset [my variable v] to [Yes]\nwait () seconds\ngo to x: (-217) y: (-255)\nset [id v] to [EGG]\npoint in direction (90)\nrepeat (6)\n    create clone of (_myself_ v)\n    change x by (45)\nend\ngo to x: (217) y: (255)\nset [id v] to [EGG2]\npoint in direction (-90)\nrepeat (6)\n    create clone of (_myself_ v)\n    change x by (-45)\nend\nwait () seconds\npoint in direction (90)\nset [id v] to [Explosion]\nclear graphic effects\nset [my variable v] to [No]\nrepeat (35)\n    set [brightness v] effect to (100)\n    create clone of (_myself_ v)\n    turn right (25) degrees\n    set [brightness v] effect to (-50)\n    create clone of (_myself_ v)\n    turn right (25) degrees\nend\nset [my variable v] to [Yes]\nwait () seconds\nset [id v] to [Triangle!]\ncreate clone of (_myself_ v)\nwait () seconds\nset [id v] to [Squares?]\ncreate clone of (_myself_ v)\nwait () seconds\nset [id v] to [Squares?2]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(ID) = [Text]> then\n    switch costume to (costume1 v)\n    go to x: (0) y: (0)\n    clear graphic effects\n    set size to (100) %\n    go to [front v] layer\n    show\n    point in direction (70)\n    set [amt v] to [100]\n    set [y v] to [0]\n    set [direction v] to [0]\n    repeat (50)\n        set [amt v] to (((amt) * (.8)) + (((0) - (wob)) / (5)))\n        change [wob v] by (amt)\n        set y to (wob)\n        set [bt v] to (((bt) * (.9)) + (((90) - (direction)) / (5)))\n        turn right (bt) degrees\n    end\n    repeat (2)\n        turn right (1) degrees\n    end\n    repeat (2)\n        turn right (2) degrees\n    end\n    repeat (2)\n        turn right (5) degrees\n    end\n    repeat (2)\n        turn right (15) degrees\n        go to [front v] layer\n    end\n    repeat (4)\n        turn right (35) degrees\n        go to [front v] layer\n    end\n    repeat (3)\n        turn right (28) degrees\n        go to [front v] layer\n    end\n    repeat (3)\n        turn right (23) degrees\n        go to [front v] layer\n    end\n    repeat (28)\n        go to [front v] layer\n        point in direction ((([cos v] of ((timer) * (100)) ) * (6)) + (90))\n        repeat until <(size) < [50]>\n            change size by (-22)\n        end\n        hide\n    end\n    repeat (40)\n        point in direction ((([cos v] of ((timer) * (100)) ) * (6)) + (90))\n        repeat until <(size) < [50]>\n            change size by (-22)\n        end\n        hide\n    end\n    repeat (50)\n        turn right (Direction) degrees\n        change y by (Y)\n        change [y v] by (-.2)\n        change [direction v] by (.028)\n    end\n    delete this clone\nelse\n    if <(ID) = [BG]> then\n        switch costume to (costume2 v)\n        go to x: (0) y: (0)\n        clear graphic effects\n        point in direction (90)\n        set size to (0) %\n        show\n        repeat (23)\n            change size by ((size) * (.2))\n        end\n        repeat (100)\n            switch costume to (costume3 v)\n            change size by (((430) - (size)) / (6))\n            switch costume to (costume2 v)\n        end\n        set size to (100) %\n        set [size v] to [0]\n        repeat (15)\n            switch costume to (costume3 v)\n            change size by (Size)\n            switch costume to (costume66 v)\n            change [size v] by (2)\n        end\n        repeat (90)\n            switch costume to (costume3 v)\n            change size by (((1215) - (size)) / (16))\n            switch costume to (costume66 v)\n        end\n        broadcast (introend v)\n    else\n        if <(ID) = [Bars]> then\n            switch costume to (costume4 v)\n            go to x: (0) y: (0)\n            clear graphic effects\n            point in direction (90)\n            set size to (146) %\n            show\n            repeat (50)\n                go to [front v] layer\n                change size by (((100) - (size)) / (6))\n            end\n            repeat (75)\n                go to [front v] layer\n            end\n            repeat (40)\n                change size by (((146) - (size)) / (15))\n            end\n            delete this clone\n        else\n            if <(ID) = [Explosion]> then\n                switch costume to (costume5 v)\n                go to x: (0) y: (0)\n                set [step! v] to [6]\n                set size to (0) %\n                wait until <(my variable) = [Yes]>\n                show\n                repeat (5)\n                    change size by (((100) - (size)) / (7))\n                    move (Step!) steps\n                    turn left (3) degrees\n                    change [step! v] by (-.2)\n                end\n                repeat (25)\n                    next costume\n                    change size by (((100) - (size)) / (7))\n                    turn left (1) degrees\n                    move (Step!) steps\n                    change [step! v] by (-.2)\n                end\n                delete this clone\n            else\n                if <(ID) = [SpinThing]> then\n                    clear graphic effects\n                    set rotation style [all around v]\n                    switch costume to (costume43 v)\n                    go to x: (0) y: (0)\n                    set [turn! v] to [0]\n                    set [brightness v] effect to (100)\n                    point in direction (90)\n                    set size to (100) %\n                    show\n                    repeat (6)\n                        turn left (Turn!) degrees\n                        switch costume to ((costume [number v]) - (1))\n                        change [turn! v] by (.3)\n                    end\n                    repeat (6)\n                        turn left (Turn!) degrees\n                        switch costume to ((costume [number v]) - (1))\n                        change [turn! v] by (.8)\n                    end\n                    repeat (7)\n                        turn left (Turn!) degrees\n                        change [turn! v] by (2)\n                    end\n                    turn left (5) degrees\n                    repeat (8)\n                        turn left (Turn!) degrees\n                        change [turn! v] by (-1.9)\n                    end\n                    repeat (2)\n                        turn left (Turn!) degrees\n                        change [turn! v] by (-1)\n                    end\n                    repeat (7)\n                        turn left (Turn!) degrees\n                        change [turn! v] by (-.5)\n                    end\n                    set rotation style [left-right v]\n                    point in direction (-90)\n                    repeat (12)\n                        next costume\n                    end\n                    delete this clone\n                else\n                    if <(ID) = [Circlesss]> then\n                        switch costume to (costume44 v)\n                        clear graphic effects\n                        point in direction (90)\n                        set size to (100) %\n                        wait until <(my variable) = [Yes]>\n                        show\n                        repeat (3)\n                            change [fisheye v] effect by (25)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (60)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (150)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (300)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (800)\n                            change [ghost v] effect by (3)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (3000)\n                            change [ghost v] effect by (7)\n                        end\n                        repeat (4)\n                            change [fisheye v] effect by (3000)\n                            change [ghost v] effect by (12)\n                        end\n                        delete this clone\n                    else\n                        if <(ID) = [EGG]> then\n                            clear graphic effects\n                            set size to (100) %\n                            set [brightness v] effect to (100)\n                            wait (.3) seconds\n                            show\n                            switch costume to (costume45 v)\n                            repeat (5)\n                                change y by (((-73) - (y position)) / (6))\n                            end\n                            repeat (17)\n                                next costume\n                                change y by (((-73) - (y position)) / (6))\n                            end\n                            delete this clone\n                        else\n                            if <(ID) = [EGG2]> then\n                                clear graphic effects\n                                set size to (100) %\n                                set [brightness v] effect to (100)\n                                show\n                                switch costume to (costume45 v)\n                                repeat (5)\n                                    change y by (((95) - (y position)) / (6))\n                                end\n                                repeat (17)\n                                    next costume\n                                    change y by (((95) - (y position)) / (6))\n                                end\n                                delete this clone\n                            else\n                                if <(ID) = [Triangle!]> then\n                                    switch costume to (costume63 v)\n                                    go to x: (0) y: (0)\n                                    clear graphic effects\n                                    point in direction (90)\n                                    set size to (0) %\n                                    show\n                                    repeat (12)\n                                        change size by (((565) - (size)) / (15))\n                                    end\n                                    repeat (50)\n                                        switch costume to (costume3 v)\n                                        change size by (((565) - (size)) / (15))\n                                        switch costume to (costume63 v)\n                                    end\n                                    delete this clone\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nset y to ((([log v] of ((timer) * (30)) ) * (6)) + (0))\nset y to ((([log v] of ((timer) * (30)) ) * (6)) + (0))\n\nwhen I start as a clone\nforever\n    set [color v] effect to (Color)\nend\n\nwhen flag clicked\nset [color v] to [0]\nforever\n    change [color v] by (6)\nend\n\nwhen I start as a clone\nif <(ID) = [Flash]> then\n    switch costume to (costume64 v)\n    go to x: (0) y: (0)\n    clear graphic effects\n    point in direction (90)\n    set size to (100) %\n    show\n    repeat (10)\n        go to [front v] layer\n        clear graphic effects\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        wait (.1) seconds\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(ID) = [Squares?]> then\n    switch costume to (costume65 v)\n    go to x: (-205) y: (-240)\n    clear graphic effects\n    point in direction (90)\n    set size to (100) %\n    set [brightness v] effect to (100)\n    show\n    glide (.5) secs to x: (-205) y: (240)\n    clear graphic effects\n    glide (.5) secs to x: (-205) y: (-240)\n    delete this clone\nelse\n    if <(ID) = [Squares?2]> then\n        switch costume to (costume65 v)\n        go to x: (205) y: (240)\n        clear graphic effects\n        point in direction (90)\n        set size to (100) %\n        set [brightness v] effect to (100)\n        show\n        glide (.5) secs to x: (205) y: (-240)\n        clear graphic effects\n        glide (.5) secs to x: (205) y: (240)\n        delete this clone\n    end\nend\n\nwhen flag clicked\nwait (10) seconds\nbroadcast (START! v)\n\nwhen I receive [start! v]\nstop [other scripts in sprite v]\nstop all sounds\nhide\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to x: (0) y: (360)\ngo to [front v] layer\nshow\nforever\n    reset timer\nend\n\nwhen [timer v] > (0.01)\nclear graphic effects\nglide (0.25) secs to x: (0) y: (0)\nforever\n    play sound [TheFatRat - Time Lapse v] until done\nend\n\n@Playbutton\n\nwhen flag clicked\nhide\n\nwhen I receive [start! v]\nshow\n\nwhen this sprite clicked\nbroadcast (play v)\nhide\n\n@Player\n\nwhen flag clicked\nhide\n\ndefine Physics\nswitch costume to (player v)\ngo to x: (-202) y: (12)\nset size to (80) %\nset rotation style [left-right v]\nshow\nset [xvel v] to [0]\nset [yvel v] to [0]\nforever\n    if <<<(mouse x) > (x position)> and <mouse down?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>> then\n        point in direction (90)\n        change [xvel v] by (1.75)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n        point in direction (-90)\n        change [xvel v] by (-1.75)\n    end\n    set [xvel v] to ((xvel) * (0.8))\n    change x by (xvel)\n    if <touching (level v)?> then\n        change y by (1)\n        if <touching (level v)?> then\n            change y by (1)\n            if <touching (level v)?> then\n                change y by (1)\n                if <touching (level v)?> then\n                    change y by (1)\n                    if <touching (level v)?> then\n                        change y by (1)\n                        if <touching (level v)?> then\n                            change x by ((xvel) * (-1))\n                            change y by (-5)\n                            if <<<mouse down?> and <(y position) < (mouse y)>> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n                                set [yvel v] to [15]\n                                if <(direction) = [90]> then\n                                    set [xvel v] to [-15]\n                                else\n                                    set [xvel v] to [15]\n                                end\n                            else\n                                set [xvel v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yvel v] by (-1)\n    change y by (yvel)\n    if <touching (level v)?> then\n        change y by ((yvel) * (-1))\n        set [yvel v] to [0]\n    end\n    change y by (-1)\n    if <<<key (w v) pressed?> and <touching (level v)?>> or <<touching (level v)?> and <<key (up arrow v) pressed?> or <<mouse down?> and <<(mouse y) > (y position)> and <touching (level v)?>>>>>> then\n        change [yvel v] by (15)\n    end\n    change y by (1)\n    if <[235] < (x position)> then\n        go to x: (-202) y: (12)\n        broadcast (nextlevel v)\n        change [level v] by (1)\n        set [xvel v] to [0]\n        set [yvel v] to [0]\n    end\n    if  then\n        go to x: (-202) y: (12)\n        broadcast (death v)\n        set [xvel v] to [0]\n        set [yvel v] to [0]\n    end\n    if <touching (trampolines v)?> then\n        set [yvel v] to [17.5]\n    end\n    if <(y position) < [-180]> then\n        go to x: (-202) y: (12)\n        set [xvel v] to [0]\n        broadcast (death v)\n        set [yvel v] to [0]\n    end\nend\n\nwhen I receive [play v]\ngo to x: (-195) y: (-18)\nset [yvel v] to [0]\nset [xvel v] to [0]\nset [level v] to [1]\nforever\n    Physics\nend\n\nwhen I receive [play v]\nforever\n    if <<key (down arrow v) pressed?> or <<key (s v) pressed?> or <<(mouse y) < (y position)> and <mouse down?>>>> then\n        switch costume to (player-crouch v)\n    else\n        switch costume to (player v)\n    end\nend\n\nwait (1) seconds\n\nwhen I receive [skippedlevel v]\ngo to x: (-202) y: (12)\nchange [level v] by (1)\n\n@Level\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nset [level v] to [1]\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [nextlevel v]\nswitch costume to (level)\n\nwhen I receive [skippedlevel v]\nnext costume\n\n@Danger\n\nwhen flag clicked\ngo to [back v] layer\nhide\n\nwhen I receive [play v]\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [nextlevel v]\nswitch costume to (level)\n\nwhen I receive [skippedlevel v]\nnext costume\n\n@Fakeplatform\n\nwhen flag clicked\nclear graphic effects\nhide\n\nwhen I receive [play v]\nforever\n    if <(level) = [8]> then\n        show\n        go to x: (15) y: (-110)\n        switch costume to (1 v)\n        repeat until <not <(level) = [8]>>\n            if <touching (player v)?> then\n                set [ghost v] effect to (40)\n            else\n                clear graphic effects\n            end\n        end\n    else\n        if <(level) = [17]> then\n            show\n            go to x: (-24) y: (-107)\n            switch costume to (2 v)\n            repeat until <not <(level) = [17]>>\n                if <touching (player v)?> then\n                    set [ghost v] effect to (40)\n                else\n                    clear graphic effects\n                end\n            end\n        else\n            hide\n        end\n    end\nend\n\n@Forest gem\n\nwhen flag clicked\ngo to x: (59) y: (-34)\ngo to [back v] layer\nhide\n\nwhen I receive [play v]\nhide\nforever\n    if <not <(level) = [20]>> then\n        hide\n    else\n        show\n    end\nend\n\nwhen I receive [play v]\nforever\n    if <(level) = [20]> then\n        show\n        forever\n            if <touching (player v)?> then\n                stop [all v]\n            end\n        end\n    end\nend\n\n@Timernumber\n\nwhen flag clicked\nset [time v] to [0]\nhide\n\nwhen I receive [play v]\nset [time v] to [0]\nforever\n    repeat until <(level) = [20]>\n        change [time v] by (1)\n        wait (1) seconds\n    end\nend\n\nwhen I receive [play v]\nshow\ngo to x: (230) y: (-300)\nset [multidigit??? v] to [no]\nrepeat (10)\n    switch costume to (0 v)\nend\nforever\n    if <[0] < (time)> then\n        switch costume to ((time) mod (10))\n    end\nend\n\n@Timenumber2\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\ngo to x: (210) y: (-300)\nrepeat (70)\n    switch costume to (0 v)\n    hide\nend\nforever\n    if <[9] < (time)> then\n        switch costume to ((((time) - (5)) / (10)) mod (10))\n        show\n        set [multidigit??? v] to [yes]\n    end\nend\n\nrepeat until <(level) = [20]>\nend\n\n@Timenumber#3\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\ngo to x: (190) y: (-300)\nrepeat (70)\n    switch costume to (0 v)\n    hide\nend\nforever\n    if <[99] < (time)> then\n        show\n    end\n    if <[1] < (time)> then\n        switch costume to ((((time) - (50)) / (100)) mod (10))\n        set [multidigit??? v] to [yes]\n    end\nend\n\nif  then\nend\n\n@Timenumber4\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\ngo to x: (170) y: (-300)\nrepeat (70)\n    switch costume to (0 v)\n    hide\nend\nforever\n    if <[999] < (time)> then\n        switch costume to ((((time) - (500)) / (1000)) mod (10))\n        show\n        set [multidigit??? v] to [yes]\n    end\nend\n\n@Timenumber5\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\ngo to x: (150) y: (-300)\nrepeat (70)\n    switch costume to (0 v)\n    hide\nend\nforever\n    if <[9999] < (time)> then\n        switch costume to ((((time) - (5000)) / (10000)) mod (10))\n        show\n        set [multidigit??? v] to [yes]\n    end\nend\n\n@Trampolines\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nswitch costume to (costume1 v)\nhide\nforever\n    if <(level) = [9]> then\n        go to x: (-52) y: (-103.5)\n        show\n        forever\n            if <touching (player v)?> then\n                repeat (11)\n                    next costume\n                end\n            end\n        end\n    end\nend\n\nrepeat (70)\n\nwhen I receive [play v]\nforever\n    if <not <(level) = [9]>> then\n        switch costume to (costume1 v)\n        hide\n    end\nend\n\n@Introskipbutton\n\nwhen flag clicked\ngo to x: (220) y: (-100)\nshow\nset [ghost v] effect to (100)\ngo to [front v] layer\ngo to [front v] layer\nwait (1.65) seconds\nset [ghost v] effect to (50)\nwait (4) seconds\nhide\n\nwhen this sprite clicked\nbroadcast (START! v)\nhide\n\n@Blank\n\n@Levelskipbutton\n\nwhen flag clicked\ngo to x: (167) y: (-143)\nset [leveldeaths v] to [0]\nhide\n\nwhen I receive [play v]\nset [leveldeaths v] to [0]\nforever\n    if <<(leveldeaths) > [9]> and <(level) < [20]>> then\n        go to [front v] layer\n        set [ghost v] effect to (35)\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [death v]\nchange [leveldeaths v] by (1)\n\nwhen I receive [nextlevel v]\nset [leveldeaths v] to [0]\n\nwhen this sprite clicked\nbroadcast (skippedlevel v)\nset [leveldeaths v] to [0]\nhide\n\n