Make your own platformer! V2.5
@Stage\n\nwhen flag clicked\nask [what health would you like your figure to have? \(whole numbers only\)] and wait\n\nwhen I receive [health set v]\nask [what health would you like your figure to have? \(whole numbers only\)] and wait\n\n@Sprite1\n\nwhen I receive [play v]\nshow\nset [health v] to (answer)\nset [jumping steps v] to [0]\nset [jump ok v] to [yes]\nswitch costume to (costume1 v)\ngo to x: (start x) y: (start y)\nrepeat until <(playing) = [1]>\n    show variable [health v]\n    if <key (up arrow v) pressed?> then\n        if <(jump ok) = [yes]> then\n            set [jumping steps v] to [12]\n        end\n    end\n    if <key (right arrow v) pressed?> then\n        point in direction (90)\n        change x by (4)\n        if <touching color (#7f7f7f)?> then\n            change x by (-4)\n        end\n    end\n    if <key (left arrow v) pressed?> then\n        point in direction (-90)\n        change x by (-4)\n        if <touching color (#7f7f7f)?> then\n            change x by (4)\n        end\n    end\n    if <touching color (#6600cc)?> then\n        set [jumping steps v] to [15]\n    end\n    if <[0] < (jumping steps)> then\n        switch costume to (costume2 v)\n        change y by (7)\n        change [jumping steps v] by (-1)\n    end\n    if <color (#002699) is touching (#666666)?> then\n        switch costume to (costume1 v)\n        set [jumping steps v] to [0]\n        set [jump ok v] to [yes]\n    else\n        if <[1] > (jumping steps)> then\n            change y by (-4)\n        end\n        set [jump ok v] to [no]\n    end\n    if <touching color (#00cc44)?> then\n        go to x: (start x) y: (start y)\n        hide\n        broadcast (done v)\n        set [playing v] to [0]\n        stop [this script v]\n    end\n    if <touching color (#ff0000)?> then\n        go to x: (start x) y: (start y)\n        change [health v] by (-1)\n        broadcast (new v)\n    end\n    if <(health) = [0]> then\n        hide\n        broadcast (done v)\n    end\nend\n\nwhen flag clicked\nhide variable [health v]\ngo to x: (183) y: (-120)\nset size to (60) %\nshow\nswitch costume to (costume1 v)\nset [start x v] to (x position)\nset [start y v] to (y position)\nset [guy v] to [1]\nset [guy v] to [1]\nset [health v] to (answer)\nset [jumping steps v] to [0]\nset [jump ok v] to [yes]\nforever\n    if <(playing) = [1]> then\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            if <(hold) = [0]> then\n                set [guy v] to [1]\n                repeat until <not <mouse down?>>\n                    go to (mouse-pointer v)\n                end\n                set [guy v] to [0]\n                if <color (#002699) is touching (#000000)?> then\n                    go to x: (-132) y: (140)\n                    set [guy v] to [0]\n                else\n                    set [guy v] to [0]\n                    repeat until <color (#002699) is touching (#666666)?>\n                        change y by (-5)\n                    end\n                    change y by (5)\n                    set [guy v] to [1]\n                    set [start x v] to (x position)\n                    set [start y v] to (y position)\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset rotation style [left-right v]\n\nwhen I receive [done v]\nhide variable [health v]\ngo to x: (start x) y: (start y)\nshow\nset [health v] to (answer)\nset [jumping steps v] to [0]\nset [jump ok v] to [yes]\n\n@Sprite2\n\nwhen flag clicked\nshow\nset [playing v] to [1]\nset [hold v] to [0]\nforever\n    go to x: (-190) y: (156)\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    set size to (75) %\n    show\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            set [hold v] to [0]\n            if <touching color (#cccccc)?> then\n                delete this clone\n            end\n        end\n    end\nend\n\nwhen I receive [done v]\nset [playing v] to [1]\nset [hold v] to [0]\nshow\n\nwhen I receive [play v]\nset [playing v] to [0]\nset [hold v] to [1]\nhide\n\n@Sprite3\n\nwhen flag clicked\nset [flag? v] to [0]\ngo to x: (-132) y: (140)\nset size to (75) %\nforever\n    go to [front v] layer\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            set [hold v] to [0]\n            if <color (#cc7700) is touching (#cccccc)?> then\n                go to x: (-132) y: (140)\n                set [flag? v] to [0]\n            else\n                set [flag? v] to [0]\n                repeat until <color (#cc7700) is touching (#666666)?>\n                    change y by (-5)\n                end\n                set [flag? v] to [1]\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(playing) = [1]> then\n        if <<not <color (#cc7700) is touching (#cccccc)?>> and <not <color (#cc7700) is touching (#666666)?>>> then\n            repeat until <<color (#cc7700) is touching (#666666)?> or <color (#cc7700) is touching (#cccccc)?>>\n                change y by (-5)\n            end\n        end\n    end\nend\n\n@Sprite4\n\nwhen this sprite clicked\nif <(flag?) = [1]> then\n    set [playing v] to [0]\n    broadcast (Play v)\n    hide\nelse\n    think [no flag!] for (2) seconds\nend\n\nwhen I receive [done v]\nshow\nhide variable [health v]\nset [health v] to [5]\nset [jumping steps v] to [0]\nset [jump ok v] to [yes]\nset [playing v] to [1]\n\nwhen flag clicked\nshow\n\n@Sprite5\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\ngo to x: (-93) y: (154)\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I receive [play v]\nhide\n\nwhen I receive [done v]\nshow\n\nwhen I start as a clone\nforever\n    set size to (75) %\n    switch costume to (costume2 v)\n    show\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            set [hold v] to [0]\n            if <touching color (#cccccc)?> then\n                delete this clone\n            end\n        end\n    end\nend\n\n@Sprite6\n\nwhen I receive [play v]\nshow\n\nwhen I receive [done v]\nhide\n\nwhen this sprite clicked\nset [playing v] to [1]\nbroadcast (done v)\n\nwhen flag clicked\nhide\n\n@Sprite8\n\nwhen flag clicked\nset rotation style [left-right v]\nshow\nswitch costume to (costume1 v)\ngo to x: (-35) y: (146)\nforever\n    point in direction (90)\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I receive [play v]\nhide\n\nwhen I receive [done v]\nshow\n\nwhen I start as a clone\nforever\n    set size to (80) %\n    switch costume to (costume2 v)\n    show\n    if <(playing) = [0]> then\n        move (5) steps\n        if on edge, bounce\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            set [hold v] to [0]\n        end\n    end\n    if <touching color (#cccccc)?> then\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nforever\n    if <<touching color (#7f7f7f)?> or <touching color (#ff0000)?>> then\n        turn right (180) degrees\n        wait until <not <<touching color (#7f7f7f)?> or <touching color (#ff0000)?>>>\n    end\nend\n\n@Sprite9\n\nwhen I receive [done v]\nshow\nrepeat (100)\n    set [pixelate v] effect to (0)\n    set [ghost v] effect to (0)\nend\nset [hold v] to [0]\nshow\n\nwhen flag clicked\nshow\nset [hold v] to [0]\nforever\n    switch costume to (costume1 v)\n    go to x: (22) y: (160)\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I receive [new v]\nrepeat (100)\n    set [pixelate v] effect to (0)\n    set [ghost v] effect to (0)\nend\nset [hold v] to [0]\n\nwhen I receive [play v]\nset [hold v] to [1]\nhide\nforever\n    if <color (#666666) is touching (#002699)?> then\n        wait (0.1) seconds\n        repeat (10)\n            change [pixelate v] effect by (10)\n            change [ghost v] effect by (10)\n        end\n        hide\n    end\nend\n\nwhen I start as a clone\nforever\n    set size to (75) %\n    switch costume to (costume2 v)\n    show\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            set [hold v] to [0]\n            if <touching color (#cccccc)?> then\n                delete this clone\n            end\n        end\n    end\nend\n\n@Sprite10\n\nwhen flag clicked\nshow\nset [playing v] to [1]\nset [hold v] to [0]\nswitch costume to (costume1 v)\nforever\n    go to x: (92) y: (142)\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I receive [play v]\nset [playing v] to [0]\nset [hold v] to [1]\nhide\n\nwhen I start as a clone\nforever\n    set size to (75) %\n    switch costume to (costume2 v)\n    show\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <(hold) = [0]> then\n            set [hold v] to [1]\n            repeat until <not <mouse down?>>\n                go to (mouse-pointer v)\n            end\n            if <touching color (#cccccc)?> then\n                set [hold v] to [0]\n                delete this clone\n            end\n            set [hold v] to [0]\n            repeat until <color (#990000) is touching (#666666)?>\n                change y by (-5)\n            end\n        end\n    end\nend\n\nwhen I receive [done v]\nset [playing v] to [1]\nset [hold v] to [0]\nshow\n\n@Sprite11\n\nwhen I receive [play v]\nhide\n\nwhen I receive [done v]\nshow\n\nwhen flag clicked\nshow\n\nwhen this sprite clicked\nbroadcast (health set v)\n\n
arrow keys to move in test mode\nclick and drag the person in edit mode to change start position\nvillains only move in test mode\nyou can move blocks around in edit mode\nto delete unwanted objects, drag them to the light grey area \n\nblocks:\ngrey block: platform\ngreen flag: finish\nred block: hazard\nvillain: moving hazard\ncrumbling: fading platform\ncannon: super jump\nhealth set: set your figure's health\n\nWhat's new in 2.5? \nnew vector character\nfixed start position glitch\n\nWhat's new in 2.3?\nhealth set: set the health for your game\nyou can move player's starting position\nmade blocks smaller so you can build bigger levels\n\nWhat's new in 2.0?\nfixed some glitches:\nplayer moves now every time\nplayer doesn't move not in test mode