The Jump || A Platformer 

Instructions: https://scratch.mit.edu/projects/499716634/\n==\nThis is my FIRST platformer!! this took a LONG time.\n\n             --------INSTRUCTIONS------------\n1. arrow keys to move\n2. [r] key to respawn\n3. [s] key to skip to the next level\n4. ENJOY\n\nmy studio: https://scratch.mit.edu/studios/28943159/\n\n#Games #All

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen flag clicked\n\n@Ground\n\nwhen I receive [next level v]\nnext costume\ndelete this clone\n\nwhen I start as a clone\nswitch costume to (costume11 v)\nif <([costume # v] of [ground v]) = [5]> then\n    forever\n        go to x: (133) y: (-80)\n        repeat (56)\n            change x by (-5)\n        end\n        repeat (56)\n            change x by (5)\n        end\n    end\nend\nif <([costume # v] of [ground v]) = [6]> then\n    forever\n        go to x: (70) y: (15)\n        repeat (53)\n            change x by (-5)\n            change y by (-1.5)\n        end\n        repeat (53)\n            change x by (5)\n            change y by (1.5)\n        end\n    end\nend\nif <([costume # v] of [ground v]) = [7]> then\n    forever\n        go to x: (140) y: (13)\n        repeat (68)\n            change x by (-5)\n        end\n        repeat (68)\n            change x by (5)\n        end\n    end\nend\nif <([costume # v] of [ground v]) = [9]> then\n    forever\n        go to x: (120) y: (50)\n        repeat (47)\n            change x by (-5)\n        end\n        repeat (47)\n            change x by (5)\n        end\n    end\nend\n\nwhen [space v] key pressed\nset [my variable v] to (join (mouse x) (mouse y))\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\n\nwhen [s v] key pressed\nif <not <([costume # v] of [ground v]) = [10]>> then\n    broadcast (Next level v)\nend\n\nwhen flag clicked\nstart sound [le moosicc v]\nwait until <(costume [number v]) = [8]>\nbroadcast (game done v)\nstop all sounds\nforever\n    play sound [Thomas The Tank Engine \(Earrape\) \(128 kbps\)2 v] until done\nend\n\nwhen flag clicked\nwait until <(costume [number v]) = [7]>\nbroadcast (spikes hide v)\n\n@Player\n\nwhen flag clicked\nshow\nforever\n    if <<(x position) > [230]> and <touching (_edge_ v)?>> then\n        broadcast (Next level v)\n    end\n    if <<touching (spikes v)?> or <<touching (lava v)?> or <<(y position) < [-170]> and <touching (_edge_ v)?>>>> then\n        broadcast (Restart v)\n    end\n    if <touching (bounce v)?> then\n        set [y v] to [20]\n    end\nend\n\nwhen [r v] key pressed\nbroadcast (Restart v)\n\nwhen I receive [next level v]\nbroadcast (Restart v)\n\nwhen I receive [restart v]\ngo to x: (-220) y: (-30)\npoint in direction (90)\nset [y v] to [0]\nset [x v] to [0]\n\nchange [y v] by (-1)\n\nwhen flag clicked\nforever\n    Move\nend\n\ndefine Move\ngo to [front v] layer\n\nwhen flag clicked\nbroadcast (Restart v)\nswitch costume to (costume1 v)\nshow\nset [x v] to [0]\nset [y v] to [0]\nforever\n    go to [front v] layer\n    if <touching (ladders v)?> then\n        set [y v] to [0]\n        if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            set [y v] to [8]\n        end\n        if <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>> then\n            set [y v] to [-8]\n        end\n    else\n        change [y v] by (-1)\n    end\n    if <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n        change [x v] by (-1)\n        point in direction (-90)\n    end\n    if <<key (right arrow v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>> then\n        change [x v] by (1)\n        point in direction (90)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (-4)\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            set [y v] to [15]\n            if <([abs v] of (x) ) = (x)> then\n                set [x v] to [-10]\n            else\n                set [x v] to [10]\n            end\n        else\n            set [x v] to [0]\n        end\n    end\n    change y by (y)\n    if <touching (ground v)?> then\n        change y by ((y) - ((y) * (2)))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (ground v)?>> then\n        set [y v] to [15]\n    end\n    change y by (1)\nend\n\nwhen flag clicked\n\n@Spikes\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [spikes hide v]\nhide\n\n@detector\n\nwhen flag clicked\nhide\nset [faved___ v] to [0]\nset [loved__ v] to [0]\nset [clone id v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\nwait (1) seconds\nbroadcast (Message v)\nshow\ngo to [front v] layer\ngo to x: (0) y: (50)\nreset timer\nswitch costume to (pick random (1) to (4))\nset [ghost v] effect to (100)\nrepeat until <(timer) > [3.5]>\n    change y by ((y position) / (-15))\n    change [ghost v] effect by (-3)\nend\nreset timer\nrepeat until <(timer) > [3.5]>\n    change y by (((y position) - (-100)) / (-15))\n    change [ghost v] effect by (10)\nend\n\nwhen I start as a clone\nif <(clone id) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved__ v] to [0]\n    switch costume to (love v)\n    forever\n        set [love? v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [loved__ v] to [1]\n        end\n    end\nend\nif <(clone id) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (fave v)\n    set [faved___ v] to [0]\n    forever\n        set [fav v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [faved___ v] to [1]\n        end\n    end\nend\n\n@Love fave\n\nwhen flag clicked\nset [costume v] to [0]\nforever\n    wait (18) seconds\n    switch costume to (costume1 v)\n    go to x: (0) y: (50)\n    show\n    go to [front v] layer\n    start sound [pop v]\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (3)\n    end\n    repeat (5)\n        change y by (-1)\n    end\n    wait (2) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\n@thing\n\nwhen I start as a clone\nset [ghost v] effect to (70)\nswitch costume to (pick random (1) to (3))\nset x to (pick random (-360) to (360))\nglide (3) secs to x: (x position) y: (-172)\ndelete this clone\n\nwhen flag clicked\nset size to (50) %\nhide\n\nwhen flag clicked\nshow\nset [ghost v] effect to (40)\ngo to x: (0) y: (169)\nforever\n    show\n    create clone of (_myself_ v)\n    hide\n    wait (0.01) seconds\nend\n\n@Thumbnail\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\nend\n\n