Teamwork! A 2 Player Platformer Neon editon!

Instructions: ~~~~~~~~~~I N S T R U C T I O N S+++\n➜ Arrow Keys to move Red, WASD to move Blue\n\n➜ Both players have hitboxes, so if you're ever stuck, try standing on top of each other!\n\n➜ Reach the dragon egg at the end to win the game!\n\nCheckpoints:\n28/10/21: #15 on Trending all!\n28/10/21: 1000 views! \n\n\n~~~~~~~~~~~L I K E   A N D   F A V+++\nMake sure to DESTROY those ❤️ and ⭐ buttons if you enjoyed my project! Can we get to... 100 likes?\n\nFollow me for more AWESOME projects!\n(I'm a hermit who lives off internet popularity lol)\n\n\n~~~~~~~~~~~~~~~~~C R E D I T S+++\nI would like to thank Oslo Albet, the creator of Fireboy and Watergirl for inspiration :D\nAlso, the music is Prelude by TheFatRat, he's a super cool music artist so check him out if you haven't already!\nThis project uses Griffpatch's platforming engine!\n\n\n\nThe art is 100% by me and owned by me, and is not to be used without permission. (not that you would anyway because its rather lackluster I will try to get better in the future...)\n\n#Games #All #Fun #Art #Puzzle #Griffpatch #War #2p #2player #Two #Player #Red #Music #Blue #Chill #Platformer #Platformers #Epic #Challenging #PMFC #PlasmaMonkeyFanClub\n\n

@Stage\n\nwhen flag clicked\nforever\n    play sound [Prelude v] until done\nend\n\nwhen flag clicked\nforever\n    switch backdrop to (backdrop1 v)\n    wait (pick random (6) to (10)) seconds\n    switch backdrop to (backdrop2 v)\n    wait (0.05) seconds\nend\n\n@Love and Fav!\n\nwhen flag clicked\nhide\nwait (20) seconds\nforever\n    set [ghost v] effect to (100)\n    show\n    switch costume to (nooooo v)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    create clone of (_myself_ v)\n    go to [front v] layer\n    wait (2) seconds\n    switch costume to (love v)\n    wait (2) seconds\n    switch costume to (fav v)\n    wait (2) seconds\n    switch costume to (follow v)\n    wait (3) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\n    wait (60) seconds\nend\n\nwhen I start as a clone\ngo to [front v] layer\nswitch costume to (cursor v)\ngo to x: (0) y: (140)\nglide (2) secs to x: (60) y: (140)\nstart sound [Click v]\nwait (1) seconds\nglide (1) secs to x: (105) y: (140)\nstart sound [Click v]\nwait (1) seconds\nglide (1) secs to x: (190) y: (140)\nstart sound [Click v]\nwait (1) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\n@Little Blue \n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <<touching (ground v)?> or <touching (little red v)?>>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <<touching (ground v)?> or <touching (little red v)?>>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\n\nwhen flag clicked\nset size to (75) %\nset rotation style [left-right v]\ngo to x: (-200) y: (0)\nshow\nset [speed y v] to [0]\nset [falling? v] to [10]\nforever\n    change [speed y v] by (-1)\n    change y by (speed y)\n    Touch Ground <(speed y) > [0]>\n    if <key (a v) pressed?> then\n        Walk (-90) (-4)\n    end\n    if <key (d v) pressed?> then\n        Walk (90) (4)\n    end\n    if <<key (w v) pressed?> and <(falling?) < [3]>> then\n        set [speed y v] to [10]\n        switch costume to (up v)\n    end\n    if <touching (trampoline v)?> then\n        wait (0) seconds\n        start sound [Boing v]\n        set [speed y v] to [18]\n    end\nend\n\nwhen flag clicked\nforever\n    create clone of (blue's shadow v)\n    if <(speed y) < [0]> then\n        switch costume to (down v)\n    end\n    if <(speed y) = [0]> then\n        switch costume to (forwards v)\n    end\nend\n\nwhen I receive [next level v]\ngo to x: (-200) y: (0)\n\nwhen flag clicked\nforever\n    if <<(y position) < [-175]> or <touching (thorns v)?>> then\n        go to x: (-200) y: (0)\n        start sound [Crunch v]\n    end\nend\n\nwhen flag clicked\nforever\n\n@Little Red\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <<touching (ground v)?> or <touching (little blue  v)?>>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <<touching (ground v)?> or <touching (little blue  v)?>>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\n\nwhen flag clicked\nset size to (75) %\nset rotation style [left-right v]\ngo to x: (-170) y: (0)\nshow\nset [speed y v] to [0]\nset [falling? v] to [10]\nforever\n    change [speed y v] by (-1)\n    change y by (speed y)\n    Touch Ground <(speed y) > [0]>\n    if <key (left arrow v) pressed?> then\n        Walk (-90) (-4)\n    end\n    if <key (right arrow v) pressed?> then\n        Walk (90) (4)\n    end\n    if <<key (up arrow v) pressed?> and <(falling?) < [3]>> then\n        set [speed y v] to [10]\n        switch costume to (up v)\n    end\n    if <touching (trampoline v)?> then\n        wait (0) seconds\n        start sound [Boing v]\n        set [speed y v] to [18]\n    end\nend\n\nwhen flag clicked\nforever\n    create clone of (red's shadow v)\n    if <(speed y) < [0]> then\n        switch costume to (down v)\n    end\n    if <(speed y) = [0]> then\n        switch costume to (forwards v)\n    end\nend\n\nwhen I receive [next level v]\ngo to x: (-170) y: (0)\n\nwhen flag clicked\nforever\n    if <<(y position) < [-175]> or <touching (thorns v)?>> then\n        go to x: (-170) y: (0)\n        start sound [Crunch v]\n    end\nend\n\n@Blue's Shadow\n\nwhen I start as a clone\ngo to [back v] layer\ngo [forward v] (9) layers\nshow\ngo to (little blue  v)\nrepeat (8)\n    change [ghost v] effect by (12.5)\n    change [color v] effect by (2)\nend\ndelete this clone\n\nwhen I receive [next level v]\ndelete this clone\n\n@Red's Shadow\n\nwhen I start as a clone\ngo to [back v] layer\ngo [forward v] (7) layers\nshow\ngo to (little red v)\nrepeat (8)\n    change [ghost v] effect by (12.5)\n    change [color v] effect by (2)\nend\ndelete this clone\n\nwhen I receive [next level v]\ndelete this clone\n\n@Red's glow\n\nwhen flag clicked\nforever\n    go to (little red v)\n    go to [back v] layer\n    go [forward v] (24) layers\nend\n\n@Blue's glow\n\nwhen flag clicked\nforever\n    go to (little blue  v)\n    go to [back v] layer\n    go [forward v] (23) layers\nend\n\n@Green Flag\n\nwhen flag clicked\nforever\n    switch costume to (not quite v)\n    if <touching (little blue  v)?> then\n        switch costume to (halfway there v)\n    end\n    if <touching (little red v)?> then\n        switch costume to (halfway there v)\n    end\n    if <<touching (little blue  v)?> and <touching (little red v)?>> then\n        switch costume to (level complete v)\n        wait (1) seconds\n        broadcast (next level v)\n    end\nend\n\nwhen I receive [next level v]\nstart sound [Magic Spell v]\nchange [level v] by (1)\n\nwhen flag clicked\nwait (0.1) seconds\ngo to x: (200) y: (-90)\nset [key collected? v] to [0]\nwait until <(Level) = [2]>\ngo to x: (-25) y: (-90)\nset [key collected? v] to [1]\nwait until <(Level) = [3]>\ngo to x: (200) y: (-60)\nwait until <(Level) = [4]>\ngo to x: (200) y: (-20)\nwait until <(Level) = [5]>\ngo to x: (-20) y: (130)\nset [key collected? v] to [1]\nwait until <(Level) = [6]>\ngo to x: (200) y: (-90)\nset [key collected? v] to [3]\nwait until <(Level) = [7]>\ngo to x: (200) y: (-90)\nset [key collected? v] to [1]\nwait until <(Level) = [8]>\ngo to x: (165) y: (50)\nset [key collected? v] to [1]\nwait until <(Level) = [9]>\ngo to x: (175) y: (60)\nwait until <(Level) = [10]>\ngo to x: (210) y: (20)\nwait until <(Level) = [11]>\nset [key collected? v] to [77777777]\n\nwhen flag clicked\nstart sound [Magic Spell v]\nforever\n    if <(Key collected?) = [0]> then\n        show\n    else\n        hide\n    end\nend\n\n@Ground\n\nwhen flag clicked\nswitch costume to (level 1 v)\nwait until <(Level) = [2]>\nswitch costume to (level 2 v)\nwait until <(Level) = [3]>\nswitch costume to (level 3 v)\nwait until <(log knocked?) = [1]>\nswitch costume to (level 3 knocked v)\nwait until <(Level) = [4]>\nswitch costume to (level 4 v)\nwait until <(Level) = [5]>\nswitch costume to (level 5 v)\nwait until <(Level) = [6]>\nswitch costume to (level 6 v)\nwait until <(Level) = [7]>\nswitch costume to (level 7 v)\nwait until <(Level) = [8]>\nswitch costume to (level 8 v)\nwait until <(Level) = [9]>\nswitch costume to (level 9 v)\nwait until <(Level) = [10]>\nswitch costume to (level 10 v)\nwait until <(Level) = [11]>\nswitch costume to (level 11 v)\n\n@Fake Ground\n\nwhen flag clicked\nset [level v] to [1]\nforever\n    switch costume to (Level)\nend\n\n@Key 1\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\ngo to x: (0) y: (-12.5)\nforever\n    repeat (50)\n        change y by (0.5)\n    end\n    repeat (50)\n        change y by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (little blue  v)?> or <touching (little red v)?>> then\n        start sound [Coin v]\n        hide\n        change [key collected? v] by (-1)\n    end\nend\n\nwhen I receive [next level v]\nwait (0) seconds\nif <not <(Level) = [7]>> then\n    show\nend\n\nwhen I receive [level 7 key v]\nshow\n\n@Key 2\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\ngo to x: (0) y: (-12.5)\nforever\n    repeat (50)\n        change y by (0.5)\n    end\n    repeat (50)\n        change y by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (little blue  v)?> or <touching (little red v)?>> then\n        start sound [Coin v]\n        hide\n        change [key collected? v] by (-1)\n    end\nend\n\nwhen I receive [next level v]\nshow\n\n@Key 3\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\ngo to x: (0) y: (-12.5)\nforever\n    repeat (50)\n        change y by (0.5)\n    end\n    repeat (50)\n        change y by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (little blue  v)?> or <touching (little red v)?>> then\n        start sound [Coin v]\n        hide\n        change [key collected? v] by (-1)\n    end\nend\n\nwhen I receive [next level v]\nshow\n\n@Prison Key\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\ngo to x: (0) y: (-12.5)\nforever\n    repeat (50)\n        change y by (0.5)\n    end\n    repeat (50)\n        change y by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (little blue  v)?> or <touching (little red v)?>> then\n        start sound [Coin v]\n        hide\n        change [prison key? v] by (-1)\n    end\nend\n\nwhen I receive [next level v]\nshow\n\n@Lvl 3 Log\n\nwhen flag clicked\nwait (0) seconds\nhide\nset [log knocked? v] to [0]\nwait until <(Level) = [3]>\npoint in direction (90)\ngo to x: (70) y: (-95)\nshow\ngo to [back v] layer\ngo [forward v] (6) layers\nwait until <<touching (little blue  v)?> or <touching (little red v)?>>\nstart sound [Door Creak v]\nrepeat (20)\n    turn left (1) degrees\nend\nrepeat (9)\n    turn left (2) degrees\nend\nrepeat (8)\n    turn left (3) degrees\nend\nrepeat (7)\n    turn left (4) degrees\nend\nstart sound [Door Closing v]\nset [log knocked? v] to [1]\nwait until <(Level) = [4]>\nhide\n\n@Thorns\n\nwhen flag clicked\nhide\nwait until <(Level) = [4]>\nshow\nswitch costume to (level 4 v)\nwait until <(Level) = [5]>\nshow\nswitch costume to (level 5 v)\nwait until <(Level) = [6]>\nshow\nswitch costume to (level 6 v)\nwait until <(Level) = [7]>\nshow\nswitch costume to (level 7 v)\nwait until <(Level) = [8]>\nshow\nswitch costume to (level 8 v)\nwait until <(Level) = [9]>\nshow\nswitch costume to (level 9 v)\nwait until <(Level) = [10]>\nswitch costume to (level 10 v)\nhide\n\n@Green Cube\n\nwhen flag clicked\nwait (0) seconds\nhide\nwait until <(Level) = [7]>\ngo to x: (15) y: (30)\nswitch costume to (imprisoned v)\nset [prison key? v] to [1]\nshow\nwait until <(Prison Key?) = [0]>\nrepeat (10)\n    change y by (-14.5)\nend\ngo to x: (15) y: (-117)\nwait (1) seconds\nswitch costume to (hooray! v)\nwait (3) seconds\nswitch costume to (happy v)\nwait (2) seconds\nswitch costume to (thanks v)\nwait (4) seconds\nbroadcast (level 7 key v)\nswitch costume to (follow me v)\nwait until <(Level) = [8]>\ngo to x: (0) y: (0)\nswitch costume to (gotta find! v)\nwait until <(Level) = [9]>\ngo to x: (0) y: (0)\nswitch costume to (nearly there! v)\nwait until <(Level) = [10]>\ngo to x: (0) y: (0)\nswitch costume to (last level! v)\nwait until <(Level) = [11]>\nswitch costume to (victory v)\n\n@Thumb\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\n@trampoline\n\nwhen flag clicked\nhide\nwait (0.1) seconds\nwait until <(Level) = [11]>\nshow\nforever\n    if <<touching (little red v)?> or <touching (little blue  v)?>> then\n        switch costume to (costume2 v)\n        wait (0.5) seconds\n    else\n        switch costume to (costume1 v)\n    end\nend\n\n