Cat Platformer #games

Instructions:      PLAY THIS ON TURBOWARP: https://turbowarp.org/382251961         \n\n    Hi! Welcome to Quarantine!\n\nArrow keys, WASD, touchscreen to move.\nYou can wall jump. \nAvoid gaps and spikes.\nCollect the toilet paper.\nGet to the other side of the screen to go to\nthe next level. \nLove and favourite for less lag. (It really works!)\n\nCredits:\n- @TimMcCool for the love/fave detector\n- @sharkyshar for the text engine\n- @xX_VRC_Xx for the intro\n- @--Sidewinder-- for the clouds\n- Many artists for the music\n- @noodlebot743 for the rest\n\nMade with nearly 2000 blocks!\nComment your time, my best without skips is 52.193 ;)\n\nFamous loves and favourites:\n@dn_scrtch loved!\n@CapAnimation loved!\n@Capt_Boanerges loved!\n@TimMcTest loved & favourited!\n@TimMcCool loved & favourited!\n@MJM3 loved & favourited!\n\n\n\nTags:\n#all #animations #art #games #music #stories #tutorials #nb743 #noodlebot743 #noodlebot #platform #platformer #griffpatch #quarantine #toilet #paper #fun #easy #cube #why #are #you #reading #this

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nrepeat (10)\n    play sound [TheFatRat+-+Prelude+\(VIP+Edit+feat.+JJD\) v] until done\nend\n\nwhen I receive [next level v]\nnext backdrop\n\n@Player\n\nwhen I receive [reset v]\ngo to x: (-220) y: (-100)\nshow\n\nwhen flag clicked\nset [next level v] to [0]\nset size to (100) %\ngo to x: (-220) y: (-100)\nshow\ngo to [front v] layer\ngo [backward v] (1) layers\nforever\n    platformer\nend\n\nwhen I receive [next level v]\ngo to x: (-220) y: (-100)\nshow\n\ndefine platformer\nif <key (right arrow v) pressed?> then\n    change [xv2 v] by (0.75)\nend\nif <key (left arrow v) pressed?> then\n    change [xv2 v] by (-0.75)\nend\nset [xv2 v] to ((xV2) * (0.9))\nchange x by (xV2)\nif <<touching (base v)?> or <touching (player2 v)?>> then\n    change y by (1)\n    if <<touching (base v)?> or <touching (player2 v)?>> then\n        change y by (1)\n        if <<touching (base v)?> or <touching (player2 v)?>> then\n            change y by (1)\n            if <<touching (base v)?> or <touching (player2 v)?>> then\n                change y by (1)\n                if <<touching (base v)?> or <touching (player2 v)?>> then\n                    change y by (1)\n                    if <<touching (base v)?> or <touching (player2 v)?>> then\n                        change x by ((xV2) * (-1))\n                        change y by (-5)\n                        if <key (up arrow v) pressed?> then\n                            if <(xV2) > [0]> then\n                                set [xv2 v] to [-5]\n                            else\n                                set [xv2 v] to [5]\n                            end\n                            set [yv2 v] to [13]\n                        else\n                            set [yv2 v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange [yv2 v] by (-1)\nchange y by (yV2)\nif <<touching (base v)?> or <touching (player2 v)?>> then\n    change y by ((yV2) * (-1))\n    set [yv2 v] to [0]\nend\nchange y by (-1)\nif <<touching (base v)?> or <touching (player2 v)?>> then\n    if <key (up arrow v) pressed?> then\n        set [yv2 v] to [15]\n    end\n    change y by (1)\nend\nif <touching (next level v)?> then\n    repeat (1)\n        change [next level v] by (1)\n        hide\n    end\n    go to x: (-220) y: (-50)\nend\nif <touching (bounce v)?> then\n    set [yv2 v] to [18]\nend\nif <touching (move v)?> then\n    set [yv2 v] to [0]\n    set [xv2 v] to [18]\nend\nif <key (z v) pressed?> then\n    broadcast (Next Level v)\n    wait (2) seconds\nend\nif <touching (danger v)?> then\n    repeat (10)\n        change size by (-10)\n    end\n    go to x: (-220) y: (-100)\n    set size to (100) %\n    set [xv2 v] to [0]\nend\nif <(y position) < [-180]> then\n    repeat (10)\n        change size by (-10)\n    end\n    go to x: (-220) y: (-100)\n    set size to (100) %\nend\nif <(next level) = [2]> then\n    repeat (1)\n        broadcast (Next Level v)\n    end\n    show\n    set [next level v] to [0]\nend\n\n@Player2\n\nwhen I receive [reset v]\ngo to x: (-177) y: (-50)\nshow\n\nwhen flag clicked\nset [next level v] to [0]\nset size to (100) %\ngo to x: (-177) y: (-50)\nshow\ngo to [front v] layer\ngo [backward v] (1) layers\nforever\n    platformer\nend\n\nwhen I receive [next level v]\ngo to x: (-177) y: (-50)\nshow\n\ndefine platformer\nif <key (d v) pressed?> then\n    change [xv v] by (0.75)\nend\nif <key (a v) pressed?> then\n    change [xv v] by (-0.75)\nend\nset [xv v] to ((xV) * (0.9))\nchange x by (xV)\nif <<touching (base v)?> or <touching (player v)?>> then\n    change y by (1)\n    if <<touching (base v)?> or <touching (player v)?>> then\n        change y by (1)\n        if <<touching (base v)?> or <touching (player v)?>> then\n            change y by (1)\n            if <<touching (base v)?> or <touching (player v)?>> then\n                change y by (1)\n                if <<touching (base v)?> or <touching (player v)?>> then\n                    change y by (1)\n                    if <<touching (base v)?> or <touching (player v)?>> then\n                        change x by ((xV) * (-1))\n                        change y by (-5)\n                        if <key (w v) pressed?> then\n                            if <(xV) > [0]> then\n                                set [xv v] to [-5]\n                            else\n                                set [xv v] to [5]\n                            end\n                            set [yv v] to [13]\n                        else\n                            set [xv v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange [yv v] by (-1)\nchange y by (yV)\nif <<touching (base v)?> or <touching (player v)?>> then\n    change y by ((yV) * (-1))\n    set [yv v] to [0]\nend\nchange y by (-1)\nif <<touching (base v)?> or <touching (player v)?>> then\n    if <key (w v) pressed?> then\n        set [yv v] to [15]\n    end\n    change y by (1)\nend\nif <touching (next level v)?> then\n    repeat (1)\n        change [next level v] by (1)\n        hide\n    end\n    go to x: (-177) y: (-50)\nend\nif <touching (bounce v)?> then\n    set [yv v] to [18]\nend\nif <touching (move v)?> then\n    set [yv v] to [0]\n    set [xv v] to [18]\nend\nif <key (y v) pressed?> then\n    broadcast (Next Level v)\n    wait (2) seconds\nend\nif <touching (danger2 v)?> then\n    repeat (10)\n        change size by (-10)\n    end\n    go to x: (-177) y: (-50)\n    set size to (100) %\n    set [xv v] to [0]\nend\nif <(y position) < [-180]> then\n    repeat (10)\n        change size by (-10)\n    end\n    go to x: (-177) y: (-50)\n    set size to (100) %\nend\nif <(next level) = [2]> then\n    repeat (1)\n        broadcast (Next Level v)\n    end\n    show\n    set [next level v] to [0]\nend\n\n@Base\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nrepeat (1)\n    next costume\nend\n\n@Danger\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nrepeat (1)\n    next costume\nend\n\n@Danger2\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nrepeat (1)\n    next costume\nend\n\n@Next level\n\nwhen flag clicked\nshow\nset [ghost v] effect to (0)\ngo to x: (208) y: (-99)\nswitch costume to (costume1 v)\nrepeat until <(costume [number v]) = [50]>\n    turn right (2) degrees\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [end v]\nhide\n\n@Sprite2\n\nwhen flag clicked\nshow\ngo to x: (208) y: (-99)\nset [ghost v] effect to (0)\nswitch costume to (costume1 v)\nrepeat until <(costume [number v]) = [50]>\n    turn right (-2) degrees\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [end v]\nhide\n\n@Sprite1\n\nwhen flag clicked\nshow\nset size to (100) %\ngo to x: (-202) y: (150)\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (110) %\n    else\n        set size to (100) %\n    end\n    if <(backdrop [number v]) = [10]> then\n        broadcast (end v)\n    end\nend\n\nwhen this sprite clicked\nplay sound [pop v] until done\nbroadcast (Reset v)\nset [next level v] to [0]\n\nwhen I receive [end v]\nhide\n\n@Bounce\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Sprite3\n\nwhen flag clicked\nset [ghost v] effect to (0)\nwait (1) seconds\nrepeat (100)\n    change [ghost v] effect by (1)\nend\n\n