Courage - The Platformer
@Stage\n\nwhen flag clicked\nforever\n    play sound [Song that needs words, and a title v] until done\nend\n\nwhen [5 v] key pressed\nstop [other scripts in stage v]\nstop all sounds\nforever\n    play sound [Bit Quest.mp3 v] until done\nend\n\n@Cyborg\n\ndefine LEFT S.A.M.\nswitch costume to (left v)\nif <<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <key (space v) pressed?>>> and <touching (ground v)?>> then\n    start sound [Wall v]\n    set [y-vel v] to [8]\n    set [x-vel v] to [5]\nelse\n    if <touching (ground v)?> then\n        set [x-vel v] to [0]\n        repeat until <not <touching (ground v)?>>\n            change x by (1)\n        end\n        change x by (-1)\n    else\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            change [x-vel v] by (-1)\n        end\n    end\nend\n\ndefine UP S.A.M.\nswitch costume to (top v)\nif <touching (ground v)?> then\n    set [y-vel v] to [0]\n    repeat until <not <touching (ground v)?>>\n        change y by (-1)\n    end\nend\n\ndefine MOVE\nchange x by (X-vel)\nchange y by (Y-vel)\nset [x-vel v] to ((X-vel) * (0.8))\nchange [y-vel v] by (-1)\n\ndefine DOWN S.A.M.\nswitch costume to (down v)\nif <touching (ground v)?> then\n    set [y-vel v] to [0]\n    repeat until <not <touching (ground v)?>>\n        change y by (1)\n    end\n    change y by (-1)\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <key (space v) pressed?>>> then\n        start sound [Jump v]\n        set [y-vel v] to [10]\n    end\nend\n\ndefine LOOKS\nif <(round ((Change) / (4))) = ((Change) / (4))> then\n    if <([abs v] of (X-vel) ) > [1]> then\n        if <(Costume) = [2]> then\n            set [costume v] to [3]\n        else\n            set [costume v] to [2]\n        end\n    else\n        set [costume v] to [1]\n    end\nend\nchange [change v] by (1)\nswitch costume to (Costume)\n\nwhen I receive [restart v]\nif <(isclone) = [0]> then\n    switch costume to (ninja v)\n    hide\n    wait (0.05) seconds\n    show\n    set size to (100) %\n    go to x: (item (level) of [x v]) y: (item (level) of [y v])\n    set [isclone v] to [0]\n    set [y-vel v] to [0]\n    set [x-vel v] to [0]\n    set [costume v] to [2]\n    set [y-vel v] to [0]\n    set [x-vel v] to [0]\n    set [costume v] to [0]\n    forever\n        set rotation style [don't rotate v]\n        go to [front v] layer\n        go [backward v] (1) layers\n        MOVE\n        DOWN S.A.M.\n        UP S.A.M.\n        DOWN S.A.M.\n        LEFT S.A.M.\n        RIGHT S.A.M.\n        LOOKS\n        FINISH\n        LAVA\n        change x by (-1)\n        set rotation style [left-right v]\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            point in direction (90)\n        else\n            if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n                point in direction (-90)\n            end\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            wait until <not <mouse down?>>\n        end\n    end\nend\n\ndefine FINISH\nif <touching (finish v)?> then\n    broadcast (Next Level v)\n    broadcast (Restart v)\n    broadcast (Restart 2 v)\nend\n\nwhen I receive [next level v]\nstart sound [Finish v]\n\nwhen flag clicked\nwait (0.02) seconds\nset volume to (100) %\nbroadcast (Restart v)\n\ndefine RIGHT S.A.M.\nchange x by (1)\nswitch costume to (right v)\nif <<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <key (space v) pressed?>>> and <touching (ground v)?>> then\n    start sound [Wall v]\n    set [y-vel v] to [8]\n    set [x-vel v] to [-5]\nelse\n    if <touching (ground v)?> then\n        set [x-vel v] to [0]\n        repeat until <not <touching (ground v)?>>\n            change x by (-1)\n        end\n    else\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            change [x-vel v] by (1)\n        end\n    end\nend\n\ndefine LAVA\nif <touching (lava v)?> then\n    stop [other scripts in sprite v]\n    broadcast (Restart v)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nstart sound [Death v]\nswitch costume to (ninja v)\nset [isclone v] to [1]\nset [x-vel v] to [0]\nset [y-vel v] to [6]\nrepeat (12)\n    turn right ((180) / (12)) degrees\n    change [y-vel v] by (-1)\n    change y by (Y-vel)\nend\nrepeat until <[-179] > (y position)>\n    change [y-vel v] by (-1)\n    change y by (Y-vel)\nend\ndelete this clone\n\n@Ground\n\nwhen I receive [next level v]\nchange [level v] by (1)\nif <(level) > [10]> then\n    set [level v] to [1]\nend\n\nwhen flag clicked\nset [level v] to [1]\nStart\nforever\n    switch costume to (level)\n    show\n    go to x: (0) y: (0)\n    if <(level) = [9]> then\n        go [backward v] (100) layers\n    else\n        go to [front v] layer\n        go [backward v] (3) layers\n    end\nend\n\ndefine Start\nshow\nerase all\ndelete (all) of [y v]\ndelete (all) of [x v]\nadd [0] to [y v]\nadd [-200] to [x v]\nadd [-35] to [y v]\nadd [-220] to [x v]\nadd [-55] to [y v]\nadd [-200] to [x v]\nadd [0] to [y v]\nadd [-200] to [x v]\nadd [-10] to [y v]\nadd [-200] to [x v]\nadd [-50] to [y v]\nadd [-220] to [x v]\nadd [5] to [y v]\nadd [-225] to [x v]\nadd [-50] to [y v]\nadd [-232] to [x v]\nadd [-50] to [y v]\nadd [-232] to [x v]\nadd [0] to [y v]\nadd [-228] to [x v]\nadd [-100] to [y v]\nadd [-228] to [x v]\n\nset [user v] to [0]\n\n@Cloud\n\nwhen flag clicked\ndelete (all) of [everywhere v]\nadd [3] to [everywhere v]\nadd [6] to [everywhere v]\nadd [8] to [everywhere v]\nhide\nforever\n    create clone of (_myself_ v)\n    wait (pick random (1.5) to (2.1)) seconds\nend\n\nwhen I start as a clone\nif <[everywhere v] contains (level)?> then\n    go to x: (-300) y: (pick random (-50) to (100))\nelse\n    go to x: (-300) y: (pick random (75) to (180))\nend\nset [ghost v] effect to (pick random (50) to (90))\nset size to (pick random (100) to (200)) %\nshow\nset [speed v] to ((3) - ((size) / (100)))\nrepeat until <(Dist) > [500]>\n    change x by (Speed)\n    change [dist v] by (Speed)\n    if <<not <[everywhere v] contains (level)?>> and <(y position) < [45]>> then\n        delete this clone\n    end\nend\ndelete this clone\n\n@Lava\n\nwhen flag clicked\nforever\n    show\n    switch costume to (level)\n    go to x: (0) y: (0)\nend\n\nset [level v] to [8]\n\n@Finish\n\nwhen flag clicked\nPortal\nswitch costume to (portal v)\nset size to (100) %\nshow\nforever\n    change [twirl v] by (3)\n    change size by ([sin v] of (Twirl) )\n    turn left ([sin v] of (Twirl) ) degrees\n    go to x: (item (level) of [x-potal v]) y: (item (level) of [y-portal v])\nend\n\ndefine Portal\ndelete (all) of [y-portal v]\ndelete (all) of [x-potal v]\nadd [210] to [x-potal v]\nadd [-32] to [y-portal v]\nadd [210] to [x-potal v]\nadd [-32] to [y-portal v]\nadd [-45] to [y-portal v]\nadd [215] to [x-potal v]\nadd [196] to [x-potal v]\nadd [-65] to [y-portal v]\nadd [-48] to [y-portal v]\nadd [188] to [x-potal v]\nadd [180] to [x-potal v]\nadd [-40] to [y-portal v]\nadd [-20] to [y-portal v]\nadd [220] to [x-potal v]\nadd [10] to [y-portal v]\nadd [222] to [x-potal v]\nadd [-50] to [y-portal v]\nadd [0] to [x-potal v]\nadd [-125] to [y-portal v]\nadd [196] to [x-potal v]\n\nwhen flag clicked\nset [easports v] to [0]\nforever\n    if <key (6 v) pressed?> then\n        if <(EASports) = [0]> then\n            set [easports v] to [1]\n        else\n            set [easports v] to [0]\n        end\n        wait until <not <key (6 v) pressed?>>\n    end\n    if <(EASports) = [1]> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nset size to (65) %\nswitch costume to (particle v)\npoint in direction (pick random (-180) to (180))\nrepeat (20)\n    move (1) steps\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\n@Part1\n\n@Part2\n\n@Part3\n\n@Part4\n\n@Part5\n\n@Part6\n\n@Part7\n\n@Part8\n\n@Cover\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    go to x: (0) y: (0)\nend\n\n@Untouchable\n\nwhen flag clicked\nforever\n    show\n    go to x: (0) y: (0)\n    switch costume to (level)\n    go to [front v] layer\n    go [backward v] (2) layers\nend\n\n
This is my oldest project, and not best. So it's not my new design style.             Check out: https://scratch.mit.edu/projects/177412476/