extreme adventure (scrolling platformer)

Instructions: Use arrow keys, WASD or mouse

@Stage\n\n@level hit boxes\n\nwhen flag clicked\nswitch costume to (size set v)\nset size to (800) %\nswitch costume to (level 1 v)\nset [ghost v] effect to (100)\n\nwhen I receive [move level hit boxes v]\ngo to x: (x scroll) y: (y scroll)\n\nwhen I receive [next level v]\nnext costume\n\n@player\n\nset [x vel v] to [0]\n\ndefine y\nchange [y vel v] by (-1)\nchange y by (y vel)\nif <[0] > (y vel)> then\n    repeat until <not <touching (level hit boxes v)?>>\n        change y by (1)\n        set [y vel v] to [0]\n        if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> or <<mouse down?> and <(mouse y) > [0]>>> then\n            set [y vel v] to [15]\n        end\n    end\n    change y by (1)\nend\nif <touching (level hit boxes v)?> then\n    repeat until <not <touching (level hit boxes v)?>>\n        set [y vel v] to [0]\n        change y by (-1)\n    end\n    change y by (-2)\nend\n\ndefine x\nif <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<mouse down?> and <[0] > (mouse x)>>> then\n    change [x vel v] by (-1)\nend\nif <<<key (d v) pressed?> or <key (right arrow v) pressed?>> or <<mouse down?> and <(mouse x) > [0]>>> then\n    change [x vel v] by (1)\nend\nchange x by (x vel)\nif <(x vel) < [0]> then\n    repeat until <not <touching (level hit boxes v)?>>\n        change x by (1)\n        set [x vel v] to [0]\n    end\nelse\n    repeat until <not <touching (level hit boxes v)?>>\n        change x by (-1)\n        set [x vel v] to [0]\n    end\nend\n\nset [x scroll v] to [0]\nset [y scroll v] to [0]\nset [x vel v] to [0]\nset [y vel v] to [0]\ngo to x: (0) y: (0)\nbroadcast (move level hit boxes v)\n\nwhen I receive [start v]\nshow\nset size to (200) %\nset [x scroll v] to [0]\nset [y scroll v] to [0]\nset [x vel v] to [0]\nset [y vel v] to [0]\ngo to x: (0) y: (0)\nbroadcast (move level hit boxes v)\nforever\n    set [x vel v] to ((x vel) * (.85))\n    set [y vel v] to ((y vel) * (.95))\n    x\n    y\n    change [x scroll v] by (() - (x position))\n    change [y scroll v] by (() - (y position))\n    broadcast (move level hit boxes v)\n    go to x: (0) y: (0)\n    if <touching (goal hit box v)?> then\n        broadcast (next level v) and wait\n        set size to (200) %\n        set [x scroll v] to [0]\n        set [y scroll v] to [0]\n        set [x vel v] to [0]\n        set [y vel v] to [0]\n        go to x: (0) y: (0)\n        broadcast (move level hit boxes v)\n    end\n    if <touching (spikes v)?> then\n        set size to (200) %\n        set [x scroll v] to [0]\n        set [y scroll v] to [0]\n        set [x vel v] to [0]\n        set [y vel v] to [0]\n        go to x: (0) y: (0)\n        broadcast (move level hit boxes v)\n    end\nend\n\nwhen flag clicked\nhide\n\n@goal hit box\n\nwhen I receive [move level hit boxes v]\ngo to x: (x scroll) y: (y scroll)\n\nwhen flag clicked\nchange x by (10000)\nswitch costume to (0 v)\nset size to (800) %\nset [ghost v] effect to (100)\nswitch costume to (1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@level render\n\nwhen I receive [move level hit boxes v]\ngo to x: (x scroll) y: (y scroll)\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [start v]\nshow\nswitch costume to (0 v)\nset size to (800) %\nswitch costume to (1 v)\n\n@spikes\n\nwhen flag clicked\nshow\nswitch costume to (1 v)\nset size to (800) %\nswitch costume to (2 v)\nset [ghost v] effect to (100)\n\nwhen I receive [move level hit boxes v]\ngo to x: (x scroll) y: (y scroll)\n\nwhen I receive [next level v]\nnext costume\n\nhide\n\n@thumb nail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\n\n@intro\n\nwhen flag clicked\nswitch backdrop to (backdrop2 v)\nshow\nset volume to (100) %\ngo to x: (0) y: (0)\nstart sound [rolemu_-_neogauge v]\nswitch costume to (logo v)\nerase all\nset size to (800) %\nwait (1.4) seconds\nrepeat (28)\n    change x by (5)\n    change y by ((40) / (28))\n    set size to (((600) / ((x position) / (2))) + (140)) %\nend\nstamp\nset size to (200) %\nswitch costume to (name v)\ngo to x: (-300) y: (40)\nglide (.5) secs to x: (-20) y: (40)\nstamp\nhide\ngo to x: (10) y: (-200)\nwait (1.1) seconds\nswitch costume to (games v)\nshow\nglide (.5) secs to x: (-20) y: (-10)\nstamp\nwait (2) seconds\nswitch backdrop to (backdrop1 v)\nerase all\nhide\nbroadcast (start v)\n\n