The Edge- A platformer

Instructions: Move with WASD and arrow keys through this obstacle course! Don't touch the enemies and jump on disappearing platforms!\n\nPlease ❤️ and ⭐\nFollow me for more projects!\n\nYou can play this on mobile! I updated this game! You can race against me if you beat the game! It's hard. You have a headstart. Press space to toggle the ghost.\n\n\n\n\n\nInspired by @Animator180\nMusic by @griffpatch

@Stage\n\n@Blocks\n\ndefine Render\nset [a v] to [0]\nset [b v] to [0]\nset [orbx v] to [0]\nset [orby v] to [0]\ngo to x: (-232) y: (-177)\nshow\nerase all\nrepeat (23)\n    repeat (31)\n        switch costume to (render v)\n        if <touching color (#7f7f7f)?> then\n            switch costume to (dirt block v)\n            stamp\n        else\n            if <touching color (#006622)?> then\n                switch costume to (grass block v)\n                stamp\n            else\n                if <touching color (#001966)?> then\n                    switch costume to (pixel v)\n                    create clone of (_myself_ v)\n                else\n                    if <touching color (#660000)?> then\n                        switch costume to (bad block v)\n                        create clone of (_myself_ v)\n                    else\n                    end\n                end\n            end\n        end\n        change x by (16)\n    end\n    set x to (-232)\n    change y by (16)\nend\nbroadcast (hide v)\nhide\n\nwhen flag clicked\nRender\n\nwhen I receive [delete clones v]\ndelete this clone\n\nwhen I receive [reset tiles v]\nRender\n\ndefine Next Level\nbroadcast (Delete clones v)\nbroadcast (show v)\nbroadcast (Reset Tiles v)\nbroadcast (Another Pixel v)\nbroadcast (Start Level v)\n\nwhen I start as a clone\nif <(costume [number v]) = [5]> then\n    wait until <touching (sprite1 v)?>\n    Next Level\nend\nif <(costume [number v]) = [4]> then\n    switch costume to (bad block v)\n    forever\n        wait until <touching (sprite1 v)?>\n        broadcast (die v)\n    end\nend\n\n@Level\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (-4) y: (-6)\n\nwhen I receive [hide v]\nset [ghost v] effect to (100)\n\nwhen I receive [show v]\nclear graphic effects\nnext costume\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [10]> then\n        broadcast (Another Spawn v)\n        wait until \n    else\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [11]> then\n        broadcast (Another Spawn 2 v)\n        wait until \n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [20]> then\n        broadcast (Win v)\n        wait until \n    end\nend\n\n@Sprite1\n\nwhen flag clicked\nswitch costume to (costume20 v)\nset rotation style [left-right v]\nshow\nset size to (100) %\nset [yv v] to [0]\nset [xv v] to [0]\ngo to x: (-227) y: (-90)\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        point in direction (90)\n        change x by (4)\n        if <touching (level v)?> then\n            change x by (-4)\n        end\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        point in direction (-90)\n        change x by (-4)\n        if <touching (level v)?> then\n            change x by (4)\n        end\n    end\n    if <touching (level v)?> then\n        change y by (1)\n        if <touching (level v)?> then\n            change y by (1)\n            if <touching (level v)?> then\n                change y by (1)\n                if <touching (level v)?> then\n                    change y by (1)\n                    if <touching (level v)?> then\n                        change y by (1)\n                        if <touching (level v)?> then\n                            change y by (-5)\n                            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                start sound [boing v]\n                                set [yv v] to [10]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-1)\n    change y by (yv)\n    if <touching (level v)?> then\n        change y by ((yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <touching (level v)?> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            start sound [Jump v]\n            set [yv v] to [12]\n        end\n    end\n    change y by (1)\n    if <(y position) < [-170]> then\n        broadcast (die v)\n    end\nend\n\nwhen I receive [delete clones v]\ngo to x: (-227) y: (-90)\n\nwhen I receive [die v]\ngo to x: (-227) y: (-90)\n\nwhen I receive [another pixel v]\n\nwhen I receive [another spawn 2 v]\ngo to x: (36) y: (-139)\n\nwhen flag clicked\nforever\n    play sound [Radioactive.mp3 v] until done\n    wait (1) seconds\nend\n\nwhen I receive [win v]\nswitch costume to (costume20 v)\n\nnext costume\n\nwhen I receive [another spawn v]\ngo to x: (194) y: (146)\n\n@3\n\nwhen flag clicked\ngo to x: (0) y: (105)\nhide\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\n