Colorless || A PLATFORMER

Instructions: a-w-d or arrow keys to move | when on a trampoline hold up to go higher | get past the twenty levels | don't touch the spikes or the sneaky gray goo | If you get stuck in the ground (happens a lot) push the restart button | get to the other side of the screen |  \n\nNUMBER 2 IS OUT. go check it out.\nhttps://scratch.mit.edu/projects/395821872\n\nyou must reach the end of your long colorless journey to bring all the light and colors back to the world! (there is a second one coming out soon maybe you will see the color then maybe not)\n\n\n\n2nd ever platformer that I have made. :)\n\n\nHave fun!

@Stage\n\n@Ground\n\nwhen flag clicked\nshow\nclear graphic effects\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\n\nwhen flag clicked\nwait (.5) seconds\nforever\n    play sound [Sunshine v] until done\nend\n\n@spikes\n\nwhen flag clicked\nshow\nclear graphic effects\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\nwhen flag clicked\nforever\n    if <touching (player2 v)?> then\n        broadcast (death' v)\n    end\nend\n\nhide\n\nshow\n\nwhen flag clicked\nswitch costume to (costume21 v)\n\n@Sprite1\n\nwhen flag clicked\nforever\n    if <touching (player2 v)?> then\n        switch costume to (level)\n    end\nend\n\nwhen flag clicked\nforever\n    switch costume to (level)\nend\n\n@Player\n\ndefine PlatformerPhysics (jumpheight) (gravity) (friction) (movementspeed)\nswitch costume to (hitbox v)\nchange y by (Yv)\nif <touching (ground v)?> then\n    repeat ([abs v] of (Yv) )\n        if <touching (ground v)?> then\n            change y by ((-1) * (([abs v] of (Yv) ) / (Yv)))\n        end\n    end\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <not <(Yv) > [0]>>> then\n        start sound [High Whoosh v]\n        set [yv v] to (jumpheight)\n    else\n        set [yv v] to [0]\n    end\nelse\n    change [yv v] by (gravity)\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [xv v] by (movementspeed)\n    point in direction (90)\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [xv v] by ((-1) * (movementspeed))\n    point in direction (-90)\nend\nchange x by (Xv)\nif <touching (ground v)?> then\n    repeat ([abs v] of (Xv) )\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n    end\n    if <touching (ground v)?> then\n        repeat ([ceiling v] of ([abs v] of (Xv) ) )\n            if <touching (ground v)?> then\n                change x by ((-1) * (([abs v] of (Xv) ) / (Xv)))\n            end\n        end\n        set [xv v] to [0]\n    end\nend\nset [xv v] to ((Xv) * (friction))\nswitch costume to (idle v)\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n    switch costume to (WalkCycle)\nend\nif <(Yv) > [1]> then\n    switch costume to (jump v)\nend\nif <(Yv) < [-3]> then\n    switch costume to (fall v)\nend\n\nwhen flag clicked\nset rotation style [left-right v]\ngo to x: (-228) y: (-90)\nset [level v] to [1]\nforever\n    if <touching (portal v)?> then\n        repeat (50)\n            switch costume to (idle v)\n            point towards (portal v)\n            turn right (65) degrees\n            move ((distance to [portal v]) / (2)) steps\n            change size by (-1)\n            change [ghost v] effect by (2)\n        end\n        broadcast (ClosePortal v) and wait\n    end\n    if <touching (flag v)?> then\n        start sound [Ding \(CinemaSins\) - Sound Effect.mp3 v]\n        change [level v] by (1)\n        go to x: (-228) y: (10)\n    end\n    if <touching (obstacles v)?> then\n        start sound [Bone Breaking Sound EffectNon Copyrighted Sound Effects.mp3 v]\n        go to x: (-228) y: (10)\n    end\n    if <touching (trampoline v)?> then\n        start sound [Cartoon Sound Effect - Bounce.mp3 v]\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            set [yv v] to [20]\n        else\n            set [yv v] to [15]\n        end\n    end\n    PlatformerPhysics [10] [-1] [0.7] [2]\nend\n\nwhen I receive [portal v]\nset [end v] to [19]\nstop [other scripts in sprite v]\nbroadcast (Walk v)\nset size to (50) %\nclear graphic effects\ngo to x: (-228) y: (-154)\nrepeat (25)\n    change [brightness v] effect by (-4)\nend\nrepeat (25)\n    change [brightness v] effect by (4)\nend\nforever\n    if <touching (slide v)?> then\n        start sound [High Whoosh v]\n        if <([costume name v] of [slide v]) = [Left]> then\n            change [xv v] by (-20)\n        else\n            change [xv v] by (20)\n        end\n    end\n    if <touching (portal v)?> then\n        repeat (50)\n            switch costume to (idle v)\n            point towards (portal v)\n            turn right (65) degrees\n            move ((distance to [portal v]) / (2)) steps\n            change size by (-1)\n            change [ghost v] effect by (2)\n        end\n        broadcast (ClosePortal v) and wait\n    end\n    if <touching (flag v)?> then\n        start sound [Ding \(CinemaSins\) - Sound Effect.mp3 v]\n        change [level v] by (1)\n        go to x: (-228) y: (10)\n    end\n    if <touching (obstacles v)?> then\n        start sound [Bone Breaking Sound EffectNon Copyrighted Sound Effects.mp3 v]\n        go to x: (-228) y: (-154)\n    end\n    if <touching (trampoline v)?> then\n        start sound [Slide Whistle v]\n        set [yv v] to [20]\n    end\n    if <touching (spikes v)?> then\n        set [xv v] to [0]\n        set [yv v] to [0]\n    end\n    if <touching (water v)?> then\n        WaterPhysics\n    else\n        PlatformerPhysics [10] [-1] [0.7] [2]\n    end\n    if <touching (zoomin v)?> then\n        set size to (70) %\n    end\n    if <(Level) = (End)> then\n        broadcast (End v)\n    end\nend\n\ndefine WaterPhysics\nif <touching (ground v)?> then\n    repeat ([ceiling v] of ([abs v] of (Xv) ) )\n        if <touching (ground v)?> then\n            change x by ((-1) * (([abs v] of (Xv) ) / (Xv)))\n        end\n    end\n    change y by (1)\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [xv v] by (-1)\n    point in direction (-90)\n    switch costume to (WalkCycle)\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [xv v] by (1)\n    point in direction (90)\n    switch costume to (WalkCycle)\nend\nif <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n    change [yv v] by (-1.5)\n    switch costume to (fall v)\nend\nif <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n    change [yv v] by (0.5)\n    switch costume to (jump v)\nend\nset [yv v] to ((Yv) * (0.8))\nchange [yv v] by (((Yv) / (15)) + (0.5))\nset [xv v] to ((Xv) * (0.7))\nchange x by (Xv)\nchange y by (Yv)\n\nwhen flag clicked\nshow\nclear graphic effects\nset size to (50) %\nset [walkcycle v] to [3]\nforever\n    change [walkcycle v] by (1)\n    if <(WalkCycle) > [6]> then\n        set [walkcycle v] to [3]\n    end\n    wait (0.05) seconds\nend\n\nwhen I receive [walk v]\nwait (1) seconds\nset size to (50) %\nset [walkcycle v] to [3]\nforever\n    change [walkcycle v] by (1)\n    if <(WalkCycle) > [6]> then\n        set [walkcycle v] to [3]\n    end\n    wait (0.05) seconds\nend\n\nwhen I receive [end v]\nhide\nbroadcast (End v) and wait\nstop [other scripts in sprite v]\nstop [all v]\n\nwhen flag clicked\nforever\n    set size to (75) %\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        broadcast (death' v)\n    end\nend\n\nwhen I receive [death' v]\ngo to x: (-228) y: (-90)\n\nforever\n\nwhen flag clicked\nforever\n    if <touching (goo v)?> then\n        broadcast (death' v)\n    end\nend\n\nwhen I receive [restart v]\ngo to x: (-228) y: (-90)\n\n@Flag\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (Ground)\n    end\nend\n\n@Trampoline\n\nwhen flag clicked\nshow\nclear graphic effects\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\ngo to x: (0) y: (0)\n\n@Goo\n\nwhen flag clicked\nshow\nclear graphic effects\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nswitch costume to (costume9 v)\n\n@RESTART\n\nwhen flag clicked\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nstart sound [Connect v]\nbroadcast (Restart v)\n\nwhen backdrop switches to [backdrop17 v]\nhide\n\nwhen flag clicked\ngo to x: (-150) y: (-170)\nforever\n    change [oi v] by (20)\n    point in direction ((([sin v] of (Oi) ) * (3)) + (90))\nend\n\nwhen flag clicked\nshow\nswitch costume to (costume2 v)\nforever\n    if <touching (mouse-pointer v)?> then\n        switch costume to (costume3 v)\n    else\n        switch costume to (costume2 v)\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nshow\nwait (.5) seconds\ngo to [front v] layer\nset [ghost v] effect to (100)\n\nhide\n\n