A Short but Hard Platformer! #games
@Stage\n\n@Player\n\nwhen flag clicked\nswitch costume to (player v)\ngo [backward v] (99) layers\nhide\nset volume to (50) %\nset [level v] to [1]\nset [deaths v] to [0]\nhide\n\ndefine Platformer Physics (speed) (friction) (jump height)\nif <touching (speed v)?> then\n    if <([costume # v] of [speed v]) = [1]> then\n        start sound [Siren Whistle v]\n        change [x velocity v] by (-6)\n    end\n    if <([costume # v] of [speed v]) = [2]> then\n        start sound [Siren Whistle v]\n        change [x velocity v] by (-12)\n    end\nend\nif <not <(Transition>) = [1]>> then\n    if <not <touching (water v)?>> then\n        change [y velocity v] by (-1)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        change [x velocity v] by (1)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n        change [x velocity v] by ((1) - (speed))\n    end\n    set [x velocity v] to ((X Velocity) * (friction))\n    change x by (X Velocity)\n    set [slope v] to [0]\n    if <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>> then\n        repeat until <<not <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>>> or <(Slope) = [-8]>>\n            change [slope v] by (-1)\n            change y by (1)\n        end\n    end\n    if <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>> then\n        change y by (Slope)\n        repeat until <not <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>>>\n            change x by ((0) - (([abs v] of (X Velocity) ) / (X Velocity)))\n        end\n        set [x velocity v] to [0]\n    end\n    change y by (Y Velocity)\n    if <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>> then\n        repeat until <not <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>>>\n            change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n        end\n        set [y velocity v] to [0]\n    end\n    change y by (-1)\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <<touching (level v)?> or <<touching (ice ghost stuff v)?> or <touching (moving ground v)?>>>> then\n        if <not <touching (water v)?>> then\n            set [y velocity v] to [9]\n        end\n    end\n    change y by (1)\n    if <touching (water v)?> then\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            change [y velocity v] by (0.8)\n        end\n        if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n            change [y velocity v] by (-0.8)\n        end\n        if <touching (water v)?> then\n            if <not <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>>> then\n                change [y velocity v] by (-0.2)\n            end\n        end\n    end\nend\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <touching (orbs v)?> then\n        set [y velocity v] to [10]\n    end\nend\n\ndefine Detection\nif <touching (flag v)?> then\n    set [level v] to ((Level) + (1))\n    start sound [Ding Sound Effect v]\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    go to x: (-215) y: (-70)\n    wait (0.1) seconds\n    if <(Level) = [3]> then\n        hide\n        stop [other scripts in sprite v]\n        stop [this script v]\n    end\nend\nif <<<touching (moving danger2 v)?> or <touching (danger v)?>> or <touching (moving danger v)?>> then\n    start sound [Crunch v]\n    broadcast (Dead v)\n    set [deaths v] to ((DEATHS) + (1))\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    broadcast (Move v)\nelse\n    if <touching (trampolines v)?> then\n        start sound [Big Boing v]\n        set [y velocity v] to [13]\n    end\nend\n\nif <touching (bounce pad v)?> then\n    set [y velocity v] to [17]\nend\n\nbroadcast (Next level v)\nbroadcast (Create Clone v)\nbroadcast (Next v)\n\nwhen I receive [start v]\npoint in direction (90)\nset size to (40) %\nset [cheat v] to [0]\nwait (0.1) seconds\nshow\ngo to x: (-215) y: (-78)\nset rotation style [left-right v]\nset [level v] to [1]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nforever\n    Platformer Physics [1.95] [0.79] [12.5]\n    Detection\nend\n\nwhen flag clicked\nforever\n    set [x v] to (round (x position))\n    set [y v] to (round (y position))\nend\n\nwhen I receive [restart v]\nstart sound [Oops v]\nset [deaths v] to ((DEATHS) + (1))\nset [x velocity v] to [0]\nset [y velocity v] to [0]\ngo to x: (-215) y: (-70)\n\nwhen I receive [jump v]\nset [y velocity v] to [8]\n\nwhen I receive [transition v]\ngo to x: (-215) y: (-70)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nwhen I receive [start v]\ngo to x: (-218) y: (-95)\nset [transition> v] to [0]\n\nwhen I start as a clone\nswitch costume to (player2 v)\nrepeat (10)\n    set [ghost v] effect to (0)\nend\ndelete this clone\n\nchange [y velocity v] by (1)\n\nwhen I receive [move v]\n\n    go to x: (-215) y: (31)\nelse\n    if <(Level) = [13]> then\n        go to x: (-192) y: (-60)\n    else\n        go to x: (-215) y: (-70)\n    end\nend\n\nbroadcast (died v)\n\nrepeat (3)\n    hide\n    wait (0.11) seconds\n    show\n    wait (0.11) seconds\nend\nhide\nwait (0.11) seconds\nshow\n\nwhen I receive [start v]\nwait (2) seconds\ngo [forward v] (55) layers\n\nwhen I receive [left v]\nswitch costume to ((costume [number v]) - (1))\n\nwhen I receive [right v]\nnext costume\n\nwait until <(Level) = [10]>\ngo to x: (-215) y: (31)\n\nwait until <(Level) = [13]>\ngo to x: (-192) y: (-60)\n\nwhen flag clicked\nswitch costume to (player v)\nbroadcast (Start v)\n\nwhen flag clicked\nshow variable [timer v]\n\n@Level\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Danger\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Orbs\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Ice Ghost Stuff\n\nwhen [m v] key pressed\nshow variable [mousex v]\nshow variable [mousey v]\nset [mousex v] to (mouse x)\nset [mousey v] to (mouse y)\n\nwhen flag clicked\nset [level v] to [1]\nhide variable [mousex v]\nhide variable [mousey v]\nif <(Level) = [1]> then\n    Clone At X: [189] [-20]\n    hide\nelse\n    hide\n    delete this clone\nend\n\ndefine Clone At X: (x) (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [next level v]\nif  then\n    delete this clone\nend\n\nwhen I start as a clone\npoint in direction (90)\nshow\ngo [backward v] (11) layers\nwait until <touching (player v)?>\nif <(Level) = [6]> then\n    if <(([y position v] of [player v]) + (10)) > (y position)> then\n        wait (0.1) seconds\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        delete this clone\n    end\nelse\n    wait (0.1) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\n\nwhen I receive [dead v]\nif <(Level) = [1]> then\n    wait (0.4) seconds\n    Clone At X: [189] [-20]\nend\n\nwhen I receive [next level v]\nchange [level v] by (1)\n\n@Flag\n\nwhen flag clicked\nhide\nswitch costume to (flag v)\n\nwhen I receive [start v]\nshow\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Moving danger\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next level v]\nnext costume\nif <(costume [number v]) = [2]> then\n    go to x: (0) y: (0)\n    switch costume to (costume2 v)\n    repeat until <(costume [number v]) = [3]>\n        repeat (68)\n            change x by (-2)\n        end\n        repeat (68)\n            change x by (2)\n        end\n        go to x: (0) y: (0)\n    end\nend\n\nwhen I receive [start v]\nshow\nif <(costume [number v]) = [1]> then\n    switch costume to (costume1 v)\n    go to x: (-36) y: (132)\n    repeat until <(costume [number v]) = [2]>\n        repeat (13)\n            change x by (-4)\n        end\n        wait (1) seconds\n        repeat (13)\n            change x by (4)\n        end\n        wait (1) seconds\n    end\nend\n\n@Moving danger2\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next level v]\nnext costume\nif <(costume [number v]) = [2]> then\n    show\n    switch costume to (costume2 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [3]>\n        repeat (68)\n            change x by (2)\n        end\n        repeat (68)\n            change x by (-2)\n        end\n    end\nend\n\nwhen I receive [start v]\nhide\n\n@Moving ground\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [start v]\ngo to x: (0) y: (0)\nshow\ngo to [back v] layer\nif <(costume [number v]) = [1]> then\n    switch costume to (costume1 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [3]>\n        repeat (100)\n            change x by (-3)\n        end\n        wait (1) seconds\n        repeat (100)\n            change x by (3)\n        end\n        wait (1) seconds\n    end\nend\n\n@Not real platforms! lol\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nset [ghost v] effect to (10)\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [next level v]\nnext costume\n\n@Speed\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Trampolines\n\nwhen flag clicked\nhide\nswitch costume to (t v)\n\nwhen I receive [start v]\nshow\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Sound\n\nwhen this sprite clicked\nif <(costume [number v]) = [1]> then\n    switch costume to (costume2 v)\n    set volume to (0) %\nelse\n    switch costume to (costume1 v)\n    set volume to (50) %\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nset volume to (50) %\nshow\nswitch costume to (costume1 v)\n\nwhen I receive [start v]\nforever\n    wait (1) seconds\n    play sound [Vexento - Magenta v] until done\nend\n\nwhen I receive [start v]\nforever\n    if <touching (mouse-pointer v)?> then\n        change size by (((60) - (size)) / (3))\n        point in direction (90)\n    else\n        change size by (((40) - (size)) / (3))\n    end\nend\n\n@Skip\n\nwhen flag clicked\nset volume to (100) %\n\nhide\n\nwhen I receive [start v]\nshow\nswitch costume to (costume1 v)\n\nwhen this sprite clicked\nbroadcast (NEXT LEVEL v)\nbroadcast (Skipped v)\n\nwhen I receive [start v]\nforever\n    if <([costume # v] of [level v]) = [3]> then\n        change volume by (-10)\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(volume) = [90]> then\n        hide\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <touching (mouse-pointer v)?> then\n        change size by (((60) - (size)) / (3))\n        point in direction (90)\n    else\n        change size by (((40) - (size)) / (3))\n    end\nend\n\n@Win!\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\nset [color v] effect to (0)\n\nwhen I receive [next level v]\nwait (0.1) seconds\nif <(Level) = [3]> then\n    go to [front v] layer\n    show\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    clear graphic effects\n    forever\n        change [color v] effect by (1)\n    end\nend\n\n@thumbnail\n\nwhen flag clicked\ngo to x: (95) y: (-27)\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\n    reset timer\nend\n\nwhen [timer v] > (0.03)\ngo to x: (95) y: (-1000)\nrepeat until <(round (y position)) = [-27]>\n    go to [front v] layer\n    change [ghost v] effect by (-10)\n    change y by (((1) - (y position)) / (5))\nend\nset y to (-27)\n\n@time\n\nwhen flag clicked\nset [timer v] to [0]\ngo to [front v] layer\nshow\nrepeat until <<(Level) = [3]> or <(Timer) = [Skipped]>>\n    wait (1) seconds\n    change [timer v] by (1)\nend\n\nwhen I receive [skipped v]\nforever\n    set [timer v] to [Skipped]\nend\n\n
A Short but Hard Platformer!\n\nThe Thumbnail makes it look easy but I can guarantee you that it's NOT! There are 2 levels and they are really hard so good luck! \nComment below if you beat it!\n\n----------------------INSTRUCTIONS------------------------\n\nUse arrow keys or WAD to move! \nAll levels are possible!\nThere are orbs, speed boosts, moving enemies and platforms so u can't say it is generic!\n\n--------------------------CREDITS----------------------------\n\nThanks to @250119code2 for most of the player code!\nThe rest is by me!\n\nSong: Vexento - Magenta\n\nShoutout: @samgamer1928, @-EpicMcEpic- , \n@-MysteriousCoder-\n\n#games #art #hard #short #fun\n