Blue Platformer 2 Player

Instructions: Blue Platformer!\nUse arrow keys to move P1, use WASD to move P2.\n P1 acts as both a solid and a spring to P2, making this easier than the original.

@Stage\n\nwhen flag clicked\nforever\n    play sound [bensound-adventure v] until done\nend\n\n@Player\n\nwhen I receive [estop v]\nhide\n\nwhen I receive [next level v]\ngo to x: (-200) y: (101)\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nset [color v] effect to (2)\npoint in direction (90)\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    set rotation style [left-right v]\n    if <key (left arrow v) pressed?> then\n        change [xv v] by (-1)\n    end\n    if <key (right arrow v) pressed?> then\n        change [xv v] by (1)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching color (#99aaff)?> then\n        change y by (1)\n        if <touching color (#99aaff)?> then\n            change y by (1)\n            if <touching color (#99aaff)?> then\n                change y by (1)\n                if <touching color (#99aaff)?> then\n                    change y by (1)\n                    if <touching color (#99aaff)?> then\n                        change y by (1)\n                        if <touching color (#99aaff)?> then\n                            change x by ((Xv) * (-1))\n                            change y by (-5)\n                            if <key (up arrow v) pressed?> then\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-7]\n                                else\n                                    set [xv v] to [7]\n                                end\n                                set [yv v] to [10]\n                            else\n                                set [xv v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (-1)\n    if <touching color (#99aaff)?> then\n        if <key (up arrow v) pressed?> then\n            set [yv v] to [15]\n        end\n    end\n    change y by (1)\n    change [yv v] by (-1)\n    change y by (Yv)\n    if <touching color (#99aaff)?> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    hide variable [xv v]\n    if <(x position) > [230]> then\n        broadcast (next level v)\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        set [yv v] to [0]\n        set [xv v] to [0]\n        go to x: (-200) y: (101)\n        set [ghost v] effect to (0)\n    end\n    if <(y position) < [-170]> then\n        go to x: (-200) y: (101)\n    end\n    if <touching color (#c4cfff)?> then\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        set [yv v] to [0]\n        set [xv v] to [0]\n        go to x: (-200) y: ()\n        set [ghost v] effect to (0)\n        start sound [Oopsy.. v]\n    end\n    if <touching color (#7086e8)?> then\n        set [yv v] to [20]\n    end\n    if <touching color (#5342c2)?> then\n        set [xv v] to [21]\n    end\nend\n\nwhen I receive [play on v]\ngo to x: (-200) y: (101)\nshow\n\n@skip\n\nwhen this sprite clicked\nbroadcast (next level v)\n\nwhen flag clicked\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (-5)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [estop v]\nhide\n\n@thumbnail\n\nwhen I receive [play on v]\nshow\nwait (1) seconds\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\nwhen flag clicked\ngo to [front v] layer\nhide\n\nwhen I receive [play on v]\n\n@levels\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [end]> then\n        broadcast (estop v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [play on v]\nwait (1) seconds\nshow\n\n@intro\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (-240) y: (0)\nset size to (100) %\npoint in direction (90)\nshow\nglide (0.5) secs to x: (0) y: (0)\nwait (0.5) seconds\nrepeat (20)\n    turn right (15) degrees\n    change size by (-5)\nend\nhide\nbroadcast (play on v)\n\n@intro backdrop\n\nwhen flag clicked\nshow\n\nwhen I receive [play on v]\nhide\n\n@Shadow\n\nwhen I receive [play on v]\nwait (1) seconds\nshow\nforever\n    go to (player v)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [estop v]\nhide\n\n@Player2\n\nwhen I receive [estop v]\nhide\n\nwhen I receive [next level v]\ngo to x: (-200) y: (101)\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nset [color v] effect to (50)\npoint in direction (90)\nset [xv2 v] to [0]\nset [yv2 v] to [0]\nforever\n    set rotation style [left-right v]\n    if <key (a v) pressed?> then\n        change [xv2 v] by (-1)\n    end\n    if <key (d v) pressed?> then\n        change [xv2 v] by (1)\n    end\n    set [xv2 v] to ((xv2) * (0.9))\n    change x by (xv2)\n    if <touching color (#99aaff)?> then\n        change y by (1)\n        if <touching color (#99aaff)?> then\n            change y by (1)\n            if <touching color (#99aaff)?> then\n                change y by (1)\n                if <touching color (#99aaff)?> then\n                    change y by (1)\n                    if <touching color (#99aaff)?> then\n                        change y by (1)\n                        if <touching color (#99aaff)?> then\n                            change x by ((xv2) * (-1))\n                            change y by (-5)\n                            if <key (w v) pressed?> then\n                                if <(xv2) > [0]> then\n                                    set [xv2 v] to [-7]\n                                else\n                                    set [xv2 v] to [7]\n                                end\n                                set [yv2 v] to [10]\n                            else\n                                set [xv2 v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (-1)\n    if <touching color (#99aaff)?> then\n        if <key (w v) pressed?> then\n            set [yv2 v] to [15]\n        end\n    end\n    change y by (1)\n    change [yv2 v] by (-1)\n    change y by (yv2)\n    if <touching color (#99aaff)?> then\n        change y by ((yv2) * (-1))\n        set [yv2 v] to [0]\n    end\n    hide variable [xv2 v]\n    if <(x position) > [230]> then\n        broadcast (next level v)\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        set [yv2 v] to [0]\n        set [xv2 v] to [0]\n        go to x: (-200) y: (101)\n        set [ghost v] effect to (0)\n    end\n    if <(y position) < [-170]> then\n        go to x: (-200) y: (101)\n    end\n    if <touching color (#c4cfff)?> then\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        set [yv2 v] to [0]\n        set [xv2 v] to [0]\n        go to x: (-200) y: ()\n        set [ghost v] effect to (0)\n        start sound [Oopsy.. v]\n    end\n    if <touching color (#7086e8)?> then\n        set [yv2 v] to [20]\n    end\n    if <touching color (#5342c2)?> then\n        set [xv2 v] to [21]\n    end\nend\n\nwhen I receive [play on v]\ngo to x: (-200) y: (101)\nshow\n\n@Shadow2\n\nwhen I receive [play on v]\nwait (1) seconds\nshow\nforever\n    go to (player2 v)\nend\n\nwhen flag clicked\nset [color v] effect to (50)\nhide\n\nwhen I receive [estop v]\nhide\n\n