ASCII platformer! 
@Stage\n\n@ASCII Platformer\n\nwhen flag clicked\nshow variable [level v]\nswitch backdrop to (backdrop v)\nset [y vel v] to [0]\nset [level v] to [1]\nCanvas 17 * [8] Level [1]\nforever\n    say (canvas)\n    if <((pos) mod (17)) = [0]> then\n        change [level v] by (1)\n        Canvas 17 * [8] Level (Level)\n    end\n    Replace item (pos) with [░]\n    change [pos v] by <<key (right arrow v) pressed?> and <not <(letter ((pos) + (1)) of (canvas)) = [▓]>>>\n    change [pos v] by ((0) - <<key (left arrow v) pressed?> and <not <<((pos) mod (17)) = [1]> or <(letter ((pos) - (1)) of (canvas)) = [▓]>>>>)\n    if <(letter (pos) of (canvas)) = [█]> then\n        Canvas 17 * [8] Level (Level)\n    end\n    Replace item (pos) with [▒]\nend\n\ndefine Canvas 17 * (rows) Level (level)\nset [canvas v] to []\nrepeat ((rows) - (1))\n    set [canvas v] to (join (canvas) [░░░░░░░░░░░░░░░░░])\nend\nset [canvas v] to (join (canvas) [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓])\ngo to x: (-80) y: ((rows) * (-10))\nReplace item (((rows) * (17)) - (32)) with [▒]\nset [pos v] to (((rows) * (17)) - (32))\nLevel (level)\n\ndefine Replace item (n) with (m)\nset [i v] to [0]\nset [replace v] to []\nset [replace: the sequel v] to []\nrepeat ((n) - (1))\n    change [i v] by (1)\n    set [replace v] to (join (Replace) (letter (i) of (canvas)))\nend\nchange [i v] by (1)\nrepeat ((length of (canvas)) - (n))\n    change [i v] by (1)\n    set [replace: the sequel v] to (join (Replace: The Sequel) (letter (i) of (canvas)))\nend\nset [canvas v] to (join (Replace) (join (m) (Replace: The Sequel)))\n\ndefine Jump (height)\nif <<key (up arrow v) pressed?> and <(letter ((pos) + (17)) of (canvas)) = [▓]>> then\n    set [y vel v] to (height)\nend\nchange [pos v] by ((-17) * <<[1] < (y vel)> and <<not <(letter ((pos) - (17)) of (canvas)) = [▓]>> and <[0] < ((pos) - (17))>>>)\nchange [y vel v] by (<(y vel) = [0]> - (1))\n\ndefine gravity\nchange [pos v] by (<<(y vel) = [0]> and <not <(letter ((pos) + (17)) of (canvas)) = [▓]>>> * (17))\n\nwhen flag clicked\nforever\n    Jump [4]\n    gravity\n    wait (0.05) seconds\nend\n\ndefine Level (n)\nif <(n) = [1]> then\n\nwhen I receive [end v]\nhide variable [level v]\nstop [other scripts in sprite v]\nif <(timer) < (☁ World record)> then\n    set [☁ world record v] to (timer)\nend\nsay (join [Thanks for playing my game! Your finale time was ] (join (join (timer) (join [ seconds. The world record is ] (☁ World record))) [ seconds. More levels are going to be added soon. If you enjoyed, please give this project a heart and/or a star. =D]))\n\nwhen flag clicked\nforever\n    play sound [sunset- paradise v] until done\nend\n\nset [☁ world record v] to [50]\n\n
Greetings, Scratcher\n\nThis is a platformer that takes place inside of a speech bubble! If you go into the project's code, you'll find that there are no moving sprites. That's why the graphics aren't brilliant...\n\nMove with the arrow keys.\n\nUpdate log:\n8th of November 2019: Release\n21st of november 2019: Added world record (can you beat it?)