Fall (A platformer with levels)

Instructions: Use Arrow Keys for Computer\nTouch to move for mobile\nWASD doesn't work\nNo skip button\nMade for Scratch Studio (Seasons)\nYou can wall jump\nThere is no unknown danger

@Stage\n\n@Player \n\ndefine Run block\nRun Engine\n\nwhen flag clicked\nset [y spawn v] to [-80]\nset [x spawn v] to [-218]\ngo to x: (X Spawn) y: (Y Spawn)\nswitch costume to (player v)\nswitch backdrop to (cavesbackround v)\nshow\nset size to (50) %\nset [x v] to [0]\nset [y v] to [0]\nforever\n    Run block\nend\n\ndefine Run Engine\nchange [y v] by (-0.5)\nif <<key (left arrow v) pressed?> or <<(x position) > (mouse x)> and <mouse down?>>> then\n    change [x v] by (-0.9)\n    switch costume to (player 2 v)\nend\nif <<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> then\n    change [x v] by (0.9)\n    switch costume to (player 1 v)\nend\nset [x v] to ((x) * (0.9))\nchange x by (x)\nif <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n    change y by (1)\n    if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n        change y by (1)\n        if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n            change y by (1)\n            if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                change y by (1)\n                if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                    change y by (1)\n                    if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                        change y by (1)\n                        if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                            change y by (-6)\n                            change x by ((x) * (-1))\n                            if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n                                set [y v] to [9]\n                                if <(x) > [0]> then\n                                    set [x v] to [-10]\n                                else\n                                    set [x v] to [10]\n                                end\n                            else\n                                set [x v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (y)\nif <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n    change y by ((y) * (-1))\n    set [y v] to [0]\nend\nchange y by (-0.5)\nif <<<<touching (ground v)?> or <touching color (#00ff2c)?>> and <key (up arrow v) pressed?>> or <<<touching (ground v)?> or <touching color (#00ff2c)?>> and <<(mouse y) > (y position)> and <mouse down?>>>> then\n    set [y v] to [9.5]\nend\nchange y by (0.5)\nif <touching (spikes v)?> then\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    go to x: (X Spawn) y: (Y Spawn)\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    set [x v] to [0]\n    set [y v] to [0]\nend\nif <(x position) > [233]> then\n    go to x: (X Spawn) y: (Y Spawn)\n    broadcast (NextLevel v)\n    set [x v] to [0]\n    set [y v] to [0]\nend\n\nwhen flag clicked\nswitch backdrop to (gamebackdrop v)\n\n@Ground\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [Costume3]> then\n        broadcast (Spikes Show v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [Costume8]> then\n        switch backdrop to (cavesbackround v)\n    end\nend\n\n@Music\n\nwhen flag clicked\nforever\n    play sound [Writing Adventure v] until done\nend\n\n@Spikes\n\nwhen backdrop switches to [gamebackdrop v]\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen I receive [spikes show v]\nshow\n\n@costume1 (8)\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    go to x: (0) y: (5)\n    go to [front v] layer\nend\n\n