Platformer Creator

Instructions: Draw platformer, all instructions in the game.

@Stage\n\nwhen I receive [next backdrop v]\nnext backdrop\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\n@Pen\n\nwhen flag clicked\nerase all\npen up\nset pen color to (#000000)\nset pen size to (10)\ngo to [back v] layer\nset [size v] to [10]\nforever\n    Go to mouse pointer\nend\n\nwhen flag clicked\nforever\n    Draw\nend\n\ndefine Go to mouse pointer\ngo to (mouse-pointer v)\nset pen size to (Size)\n\nwhen I receive [lava v]\nset pen color to (#ff0000)\n\nwhen I receive [ground v]\nset pen color to (#000000)\n\nwhen I receive [green v]\nset pen color to (#35ff00)\n\nwhen flag clicked\nforever\n    Size\nend\n\nwhen I receive [draw v]\nwait (0.5) seconds\nforever\n    Draw\nend\n\nwhen I receive [draw v]\nforever\n    Size\nend\n\nwhen I receive [test v]\nstop [other scripts in sprite v]\npen up\n\ndefine Draw\nif <(y position) < [-110]> then\n    pen up\n    stop [this script v]\nend\nif <(Draw?) = [1]> then\n    if <mouse down?> then\n        pen down\n    else\n        pen up\n    end\nend\n\ndefine Size\nif <<<(mouse x) > [-130]> and <(mouse y) > [135]>> and <(mouse x) < [8]>> then\n    if <mouse down?> then\n        hide variable [size v]\n    else\n        show variable [size v]\n    end\nelse\n    hide variable [size v]\nend\n\nwhen I receive [draw v]\nforever\n    Go to mouse pointer\nend\n\nwhen I receive [spawn point v]\nstop [other scripts in sprite v]\npen up\n\nwhen I receive [stop test v]\nbroadcast (Draw v)\n\nwhen I receive [erase all v]\nerase all\n\nwhen I receive [next backdrop v]\nstop [other scripts in sprite v]\npen up\n\n@Gray\n\nwhen I receive [test v]\nswitch costume to (costume2 v)\n\nwhen I receive [stop test v]\nswitch costume to (costume1 v)\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\ngo to [back v] layer\nshow\n\n@Colors\n\nwhen I start as a clone\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        if <mouse down?> then\n            if <(Clone #) = [1]> then\n                broadcast (Ground v)\n            else\n                if <(Clone #) = [2]> then\n                    broadcast (Lava v)\n                else\n                    if <(Clone #) = [3]> then\n                        broadcast (Green v)\n                    else\n                        if <(Clone #) = [4]> then\n                            broadcast (Spawn point v)\n                        else\n                            broadcast (Erase all v)\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [test v]\nhide\n\nwhen flag clicked\ngo to x: (-195) y: (-148)\nswitch costume to (costume1 v)\nset [clone # v] to [1]\nhide\nrepeat (3)\n    create clone of (_myself_ v)\n    change [clone # v] by (1)\n    change x by (75)\n    next costume\nend\nchange x by (30)\ncreate clone of (_myself_ v)\nchange [clone # v] by (1)\nnext costume\nchange x by (120)\ncreate clone of (_myself_ v)\nchange [clone # v] by (1)\nnext costume\n\nwhen I receive [stop test v]\nif <(Clone #) < [6]> then\n    show\nend\n\n@Start Stop\n\nwhen flag clicked\ngo to x: (-212) y: (154)\nswitch costume to (green flag v)\nset [clone # v] to [1]\nhide\nrepeat (2)\n    create clone of (_myself_ v)\n    change [clone # v] by (1)\n    change x by (50)\n    next costume\nend\n\nwhen I start as a clone\nshow\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(Clone #) = [1]> then\n            broadcast (Test v)\n        else\n            broadcast (Stop test v)\n        end\n    end\nend\n\n@Player\n\nwhen I receive [test v]\ngo to x: ([x position v] of [spawn point v]) y: ([y position v] of [spawn point v])\npoint in direction (90)\ngo to [back v] layer\nshow\nset [sy v] to [0]\nset [in air v] to [0]\nwait (0.3) seconds\nforever\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        point in direction (90)\n        change [sx v] by (2)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        point in direction (-90)\n        change [sx v] by (-2)\n    end\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n        if <(In Air) < [3]> then\n            set [sy v] to [14]\n        end\n    end\n    if <<touching color (#ff0000)?> or <(y position) < [-179]>> then\n        go to x: ([x position v] of [spawn point v]) y: ([y position v] of [spawn point v])\n    end\n    if <touching color (#35ff00)?> then\n        set [sy v] to [20]\n    end\n    change [sy v] by (-1.5)\n    set [sx v] to ((sx) * (0.72))\n    Change x by (sx)\n    Change y by (sy)\nend\n\ndefine Change x by (sx)\nchange x by (sx)\nif <touching color (#000000)?> then\n    repeat (12)\n        change y by (1)\n        if <not <touching color (#000000)?>> then\n            stop [this script v]\n        end\n    end\n    change y by (-12)\n    repeat until <not <touching color (#000000)?>>\n        if <(sx) > [0]> then\n            change x by (-1)\n        else\n            change x by (1)\n        end\n    end\nend\n\ndefine Change y by (sy)\nchange y by (sy)\nchange [in air v] by (1)\nrepeat until <not <touching color (#000000)?>>\n    if <(sy) > [0]> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [in air v] to [0]\n    end\n    set [sy v] to [0]\nend\n\nwhen I receive [stop test v]\nstop [other scripts in sprite v]\nhide\n\nwhen flag clicked\nhide\n\n@Spawn point\n\nwhen flag clicked\ngo to x: (-200) y: (20)\nshow\n\nwhen I receive [spawn point v]\nwait until <not <mouse down?>>\nrepeat until <mouse down?>\n    go to (mouse-pointer v)\nend\nbroadcast (Draw v)\n\nwhen I receive [test v]\nhide\n\nwhen I receive [stop test v]\nshow\n\nwhen I receive [erase all v]\ngo to x: (-200) y: (20)\n\n@Next backdrop\n\nwhen flag clicked\nhide\nswitch backdrop to (backdrop1 v)\ngo to x: (220) y: (-84)\nset [draw? v] to [1]\nforever\n    Mouse down?\nend\n\nwhen this sprite clicked\nbroadcast (Next Backdrop v)\nwait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\nbroadcast (Draw v)\n\ndefine Mouse down?\nif <not <mouse down?>> then\n    if <touching (mouse-pointer v)?> then\n        set [draw? v] to [0]\n        show\n    else\n        set [draw? v] to [1]\n        hide\n    end\nend\n\nwhen I receive [stop test v]\nforever\n    Mouse down?\nend\n\nwhen I receive [test v]\nhide\nstop [other scripts in sprite v]\n\n@Preview\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nhide\n\n@Help\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (20)\nwait (10) seconds\nrepeat (100)\n    change [ghost v] effect by (1)\nend\nhide\n\nwhen I receive [test v]\nhide\n\n