Ancient Platformer
@Stage\n\nwhen flag clicked\nforever\n    play sound [music v] until done\nend\n\n@Spike\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Player\n\nwhen flag clicked\nshow\nset size to (23) %\ngo to x: (-210) y: (0)\nset rotation style [left-right v]\nhide variable [y v]\nhide variable [x v]\nset [y v] to [0]\nset [x v] to [0]\nforever\n    change [y v] by (-1)\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n        change [x v] by (-1)\n        point in direction (-90)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        change [x v] by (1)\n        point in direction (90)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (-4)\n        change x by ((x) * (-1))\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            set [y v] to [17]\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    change y by (y)\n    if <touching (ground v)?> then\n        change y by ((y) - ((y) * (2)))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (ground v)?>> then\n        set [y v] to [15]\n    end\n    change y by (1)\n    if <<touching (spike v)?> or <touching (waves v)?>> then\n        set rotation style [all around v]\n        repeat (10)\n            change size by (-10)\n            change [ghost v] effect by (10)\n            turn right (15) degrees\n        end\n        clear graphic effects\n        set size to (23) %\n        set rotation style [left-right v]\n        point in direction (90)\n        go to x: (-210) y: (0)\n        set [y v] to [0]\n        set [x v] to [0]\n    end\n    if <(x position) > [222]> then\n        broadcast (Next Level v)\n        go to x: (-210) y: (0)\n        set [y v] to [0]\n        set [x v] to [0]\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\n\n@Ground\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n
WASD \narrow keys\nmobile\n\nhttps://scratch.mit.edu/projects/579346975 anti-spike version (a remix by @Koon_p4l) 