Colorless- a platformer online!

Instructions: Use arrow keys or w,a,s,d to move.\nAlso is mobile!\nPress s to skip and press r to reset\n----------------NOTE------------------\nyou cannot play if you are a new scratcher or signed out.\n\nupload videos here\n---------------------------------------\nhttps://scratch.mit.edu/studios/29653454/projects/

@Stage\n\nwhen flag clicked\nswitch backdrop to (normal v)\nplay sound [Connect v] until done\nforever\n    play sound [Distant_Lands v] until done\nend\n\nwhen I receive [blue brush collected v]\nswitch backdrop to (blue backdrop v)\n\nwhen I receive [game complete! v]\nswitch backdrop to (game complete v)\n\n@Player\n\ndefine Restart\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-200) y: (0)\n\ndefine Physics\nif <(Player) = [1]> then\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [x v] by (2)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [x v] by (-2)\n    end\n    change x by (x)\n    if <touching (level v)?> then\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(x) > [0]> then\n                set [x v] to [-10]\n                set [y v] to [10]\n            else\n                set [x v] to [10]\n                set [y v] to [10]\n            end\n        end\n    else\n        set [x v] to ((x) * (0.8))\n    end\n    change y by (y)\n    if <touching (level v)?> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(Jumping?) = [y]> then\n                set [y v] to [12]\n                set [jumping? v] to [n]\n            end\n        end\n    else\n        change [y v] by (-1)\n        set [jumping? v] to [y]\n    end\n    if <<touching (spike v)?> or <touching (lava v)?>> then\n        Restart\n    end\n    if <(x position) > [225]> then\n        change [level v] by (1)\n        Restart\n    end\nend\n\nwhen flag clicked\nchange [☁ players v] by (1)\nset [player v] to [0]\nswitch costume to (costume1 v)\nRestart\nshow\nset [level v] to [1]\nforever\n    Physics\n    if <touching (brush v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [9]\n        Restart\n        broadcast (blue brush collected v)\n    end\n    if <key (r v) pressed?> then\n        Restart\n    end\n    if <key (s v) pressed?> then\n        wait until <not <key (s v) pressed?>>\n        Skip level\n    end\n    if <touching (brush2 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [13]\n        Restart\n        broadcast (Red brush collected v)\n    end\n    if <(Level) = [9]> then\n        switch costume to (costume2 v)\n        broadcast (blue brush collected v)\n    end\n    if <touching (brush3 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [16]\n        Restart\n        broadcast (Game complete! v)\n    end\nend\n\ndefine Slope Detection\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <touching (level v)?>>>\n    change x by (1)\n    change [slope v] by (1)\nend\nif <touching (level v)?> then\n    change y by (-8)\nend\n\nwhen flag clicked\nforever\n    if <(y position) = [-184]> then\n        Restart\n    end\nend\n\ndefine Skip level\nchange [level v] by (1)\nRestart\n\nwhen flag clicked\nforever\n    if <(Player) = [1]> then\n        set [☁ p1 x v] to (x position)\n        set [☁ p1 y v] to (y position)\n    end\nend\n\nwhen flag clicked\nforever\n    online movement\nend\n\ndefine online movement\ngo to x: (☁ p1 x) y: (☁ p1 y)\n\nwhen flag clicked\nforever\n    if <(Player) = [1]> then\n        set [☁ p1lvl v] to (Level)\n    end\nend\n\nwhen flag clicked\nforever\n    if <not <(Level) = (☁ p2lvl)>> then\n        broadcast (ghost p2 v)\n    else\n        broadcast (unghost p2 v)\n    end\nend\n\nif <(Player) = [1]> then\n\nwhen flag clicked\nforever\n    if <not <(Level) = (☁ p3lvl)>> then\n        broadcast (ghost p3 v)\n    else\n        broadcast (unghost p3 v)\n    end\nend\n\nif <(Player) = [1]> then\n\nwhen flag clicked\nforever\n    if <not <(Level) = (☁ p1lvl)>> then\n        broadcast (ghost p1 v)\n    else\n        broadcast (unghost p1 v)\n    end\nend\n\nwhen I receive [ghost p1 v]\nset [ghost v] effect to (50)\n\nwhen I receive [unghost p1 v]\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    if <(Player) = [0]> then\n        set [timer v] to [0]\n    end\nend\n\n@Level\n\nwhen flag clicked\nswitch costume to (1 v)\nforever\n    set size to (90) %\n    switch costume to (Level)\nend\n\n@text\n\nwhen flag clicked\ngo to x: (28) y: (-7)\nforever\n    set size to (100) %\n    switch costume to (Level)\n    if <(Level) = [2]> then\n        go to x: (13) y: (75)\n    end\n    if <(Level) = [3]> then\n        go to x: (13) y: (85)\n    end\n    if <(Level) = [4]> then\n        go to x: (5) y: (140)\n    end\n    if <(Level) = [6]> then\n        go to x: (-100) y: (135)\n    end\n    if <(Level) = [7]> then\n        go to x: (5) y: (75)\n    end\n    if <(Level) = [9]> then\n        go to x: (5) y: (12)\n    end\n    if <(Level) = [10]> then\n        go to x: (5) y: (100)\n    end\nend\n\n@Brush\n\nwhen flag clicked\nforever\n    if <(Level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\n@spike\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [13]> then\n        go to x: (-73) y: (-123)\n        show\n        switch costume to (costume2 v)\n        create clone of (_myself_ v)\n    else\n        hide\n        if <(Level) = [50]> then\n    end\nend\n\nwhen I start as a clone\ngo to x: (120) y: (-123)\nswitch costume to (costume1 v)\nforever\n    if <(Level) = [13]> then\n        show\n    else\n        delete this clone\n    end\nend\n\nif <not <(Level) = [13]>> then\n    delete this clone\nend\n\n@Brush2\n\nwhen flag clicked\ngo to x: (27) y: (-55)\nforever\n    if <(Level) = [12]> then\n        show\n    else\n        hide\n    end\nend\n\n@Lava\n\nwhen flag clicked\nforever\n    if <(Level) = [14]> then\n        show\n    else\n        hide\n    end\nend\n\n@Brush3\n\nwhen flag clicked\nforever\n    go to x: (21) y: (-70)\n    if <(Level) = [15]> then\n        show\n    else\n        hide\n    end\nend\n\n@thumbnail\n\nwhen flag clicked\nset size to (100) %\nhide\ngo to x: (-121) y: (90)\nforever\n    go to x: (0) y: (00)\n    reset timer\n    go to [front v] layer\nend\n\nwhen [timer v] > (0)\nshow\nset [ghost v] effect to (100)\ngo to [front v] layer\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\n@Player2\n\nwhen flag clicked\nforever\n    if <(Player) = [2]> then\n        set [☁ p2lvl v] to (Level)\n    end\nend\n\ndefine online movement\ngo to x: (☁ p2 x) y: (☁ p2 y)\n\nwhen flag clicked\nforever\n    online movement\nend\n\ndefine Restart\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-200) y: (0)\n\ndefine Physics\nif <(Player) = [2]> then\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [x v] by (2)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [x v] by (-2)\n    end\n    change x by (x)\n    if <touching (level v)?> then\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(x) > [0]> then\n                set [x v] to [-10]\n                set [y v] to [10]\n            else\n                set [x v] to [10]\n                set [y v] to [10]\n            end\n        end\n    else\n        set [x v] to ((x) * (0.8))\n    end\n    change y by (y)\n    if <touching (level v)?> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(Jumping?) = [y]> then\n                set [y v] to [12]\n                set [jumping? v] to [n]\n            end\n        end\n    else\n        change [y v] by (-1)\n        set [jumping? v] to [y]\n    end\n    if <<touching (spike v)?> or <touching (lava v)?>> then\n        Restart\n    end\n    if <(x position) > [225]> then\n        change [level v] by (1)\n        Restart\n    end\nend\n\nwhen flag clicked\nset [player v] to [1]\nswitch costume to (costume1 v)\nRestart\nshow\nset [level v] to [1]\nforever\n    Physics\n    if <touching (brush v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [9]\n        Restart\n        broadcast (blue brush collected v)\n    end\n    if <key (r v) pressed?> then\n        Restart\n    end\n    if <key (s v) pressed?> then\n        wait until <not <key (s v) pressed?>>\n        Skip level\n    end\n    if <touching (brush2 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [13]\n        Restart\n        broadcast (Red brush collected v)\n    end\n    if <(Level) = [9]> then\n        switch costume to (costume2 v)\n        broadcast (blue brush collected v)\n    end\n    if <touching (brush3 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [16]\n        Restart\n        broadcast (Game complete! v)\n    end\nend\n\ndefine Slope Detection\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <touching (level v)?>>>\n    change x by (1)\n    change [slope v] by (1)\nend\nif <touching (level v)?> then\n    change y by (-8)\nend\n\nwhen flag clicked\nforever\n    if <(y position) = [-184]> then\n        Restart\n    end\nend\n\ndefine Skip level\nchange [level v] by (1)\nRestart\n\nwhen flag clicked\nforever\n    if <(Player) = [2]> then\n        set [☁ p2 x v] to (x position)\n        set [☁ p2 y v] to (y position)\n    end\nend\n\nwhen I receive [ghost p2 v]\nset [ghost v] effect to (50)\n\nwhen I receive [unghost p2 v]\nset [ghost v] effect to (0)\n\n@Player3\n\nwhen flag clicked\nforever\n    if <(Player) = [3]> then\n        set [☁ p3lvl v] to (Level)\n    end\nend\n\nwhen flag clicked\nforever\n    online movement\nend\n\ndefine online movement\ngo to x: (☁ p3 x) y: (☁ p3 y)\n\ndefine Restart\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-200) y: (0)\n\ndefine Physics\nif <(Player) = [3]> then\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [x v] by (2)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [x v] by (-2)\n    end\n    change x by (x)\n    if <touching (level v)?> then\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(x) > [0]> then\n                set [x v] to [-10]\n                set [y v] to [10]\n            else\n                set [x v] to [10]\n                set [y v] to [10]\n            end\n        end\n    else\n        set [x v] to ((x) * (0.8))\n    end\n    change y by (y)\n    if <touching (level v)?> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(Jumping?) = [y]> then\n                set [y v] to [12]\n                set [jumping? v] to [n]\n            end\n        end\n    else\n        change [y v] by (-1)\n        set [jumping? v] to [y]\n    end\n    if <<touching (spike v)?> or <touching (lava v)?>> then\n        Restart\n    end\n    if <(x position) > [225]> then\n        change [level v] by (1)\n        Restart\n    end\nend\n\nwhen flag clicked\nset [player v] to [1]\nswitch costume to (costume1 v)\nRestart\nshow\nset [level v] to [1]\nforever\n    Physics\n    if <touching (brush v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [9]\n        Restart\n        broadcast (blue brush collected v)\n    end\n    if <key (r v) pressed?> then\n        Restart\n    end\n    if <key (s v) pressed?> then\n        wait until <not <key (s v) pressed?>>\n        Skip level\n    end\n    if <touching (brush2 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [13]\n        Restart\n        broadcast (Red brush collected v)\n    end\n    if <(Level) = [9]> then\n        switch costume to (costume2 v)\n        broadcast (blue brush collected v)\n    end\n    if <touching (brush3 v)?> then\n        switch costume to (costume2 v)\n        set [level v] to [16]\n        Restart\n        broadcast (Game complete! v)\n    end\nend\n\ndefine Slope Detection\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <touching (level v)?>>>\n    change x by (1)\n    change [slope v] by (1)\nend\nif <touching (level v)?> then\n    change y by (-8)\nend\n\nwhen flag clicked\nforever\n    if <(y position) = [-184]> then\n        Restart\n    end\nend\n\ndefine Skip level\nchange [level v] by (1)\nRestart\n\nwhen flag clicked\nset [timer v] to [0.1]\nforever\n    wait (0.1) seconds\n    change [timer v] by (0.1)\nend\n\nwhen flag clicked\nforever\n    if <(Player) = [3]> then\n        set [☁ p3 x v] to (x position)\n        set [☁ p3 y v] to (y position)\n    end\nend\n\nwhen flag clicked\nforever\n    go to x: (☁ p3 x) y: (☁ p3 y)\nend\n\nwhen I receive [ghost p3 v]\nset [ghost v] effect to (50)\n\nwhen I receive [unghost p3 v]\nset [ghost v] effect to (0)\n\n