Notebook Platformer || Contest Entry

Instructions: Yeah guys... the ST hasn't responded to the mass report... so I'm joining a new contest lol. Welcome back to another game! I haven't posted in a while... I'm really sorry. This is NOT a filler, you can tell because the levels are EXTREMELY hard. All levels are possible though! Oops, forgot to tell you the instructions: Mobile friendly, Arrow keys or wasd, don't touch spikes/lava, and bounce on trampolines! M to mute music, t to have a different one. Have fun!\n@Jranknom for the backdrop\n@250119code2 for inspo on idea and thumbnail idea + player art inspo\nGoogle for thumbnail font, it is quicksand bold\nComment: I commented XD

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nset volume to (100) %\nset [m v] to (pick random (1) to (4))\nforever\n    if <key (m v) pressed?> then\n        if <(volume) = [100]> then\n            set volume to (0) %\n        else\n            set volume to (100) %\n        end\n        Pitch\n    end\n    Pitch\n    wait until <not <key (m v) pressed?>>\n    Pitch\n    if <key (t v) pressed?> then\n        stop all sounds\n        change [m v] by (1)\n    end\n    wait until <not <key (t v) pressed?>>\n    Pitch\nend\n\nwhen flag clicked\nforever\n    play sound (m) until done\nend\n\nwhen I receive [platformer v]\nswitch backdrop to (backdrop2 v)\n\ndefine Pitch\nset [pitch v] effect to (((100) - (volume)) - (<(volume) = [0]> * ((-1) / (0))))\n\n@level\n\nwhen flag clicked\nhide\n\nwhen I receive [level change' v]\nnext costume\n\nwhen I receive [platformer v]\nswitch costume to (level1 v)\nshow\n\nwhen flag clicked\nbroadcast (platformer v)\n\n@player\n\nwhen flag clicked\nhide\n\ndefine Touch ground <something above>\nchange [a v] by (1)\nrepeat until <not <touching color (#ff8800)?>>\n    change y by (1)\n    set [y v] to [22]\n    set [a v] to [0]\nend\nrepeat until <not <touching (level v)?>>\n    if <something above> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [a v] to [0]\n    end\n    set [y v] to [0]\nend\n\ndefine reset\ngo to x: (-215) y: (-75)\nset [y v] to [0]\nset [x v] to [0]\nforever\n    change [x v] by (<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> - <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>>)\n    set [x v] to ((x) * (0.88))\n    change x by (x)\n    if <touching (level v)?> then\n        change x by ((0) - (x))\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            if <(x) > [0]> then\n                set [x v] to [-8]\n            else\n                set [x v] to [8]\n            end\n            set [y v] to [10]\n        else\n            set [x v] to [0]\n        end\n    end\n    if <touching color (#57a1ff)?> 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 v] by (0.5)\n        else\n            change [y v] by (-.05)\n        end\n    else\n        change [y v] by (-1)\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 <touching color (#57a1ff)?> then\n    end\n    change y by (y)\n    if <<<<touching (spikes v)?> or <touching color (#ff0000)?>> or <(y position) = [-180]>> or <touching (cannon v)?>> then\n        go to [back v] layer\n        stop [other scripts in sprite v]\n        reset\n    else\n        go to [front v] layer\n    end\n    if <touching (flag v)?> then\n        stop [other scripts in sprite v]\n        broadcast (level change' v)\n        reset\n    end\n    Touch ground <(y) > [0]>\nend\n\nwhen I receive [platformer v]\nshow\nreset\n\n@spikes\n\nwhen flag clicked\nhide\n\nwhen I receive [level change' v]\nnext costume\n\nwhen I receive [platformer v]\nshow\nswitch costume to ( v)\n\n@flag\n\nwhen flag clicked\nhide\n\nwhen I receive [platformer v]\nshow\nforever\n    if <<<([costume # v] of [level v]) < [3]> or <[3] < ([costume # v] of [level v])>> and <not <([costume # v] of [level v]) = [6]>>> then\n        go to x: (208) y: (-79)\n    end\n    if <([costume # v] of [level v]) = [3]> then\n        go to x: (120) y: (110)\n    end\n    if <([costume # v] of [level v]) = [6]> then\n        go to x: (200) y: (140)\n    end\n    if <([costume # v] of [level v]) = [14]> then\n        hide\n    else\n        show\n    end\nend\n\n@cannon\n\nwhen flag clicked\nhide\n\nwhen I receive [level change' v]\nstop [other scripts in sprite v]\nbroadcast (stuff v)\n\nwhen I receive [stuff v]\nforever\n    if <([costume # v] of [level v]) = [3]> then\n        go to x: (229) y: (-86)\n        switch costume to (costume1 v)\n        show\n        point in direction (-90)\n        forever\n            create clone of (_myself_ v)\n            wait (4) seconds\n        end\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nswitch costume to (costume2 v)\nrepeat until <<touching (level v)?> or <<touching (_edge_ v)?> or <touching (player v)?>>>\n    move (5) steps\nend\ndelete this clone\n\nwhen I receive [platformer v]\nshow\nset rotation style [left-right v]\nbroadcast (stuff v)\n\n@tramp\n\nwhen flag clicked\nhide\n\nwhen I receive [switch v]\nswitch costume to ([costume # v] of [level v])\n\nwhen I receive [platformer v]\nshow\nforever\n    broadcast (switch v)\nend\n\n@Thumby\n\nwhen flag clicked\nforever\n    hide\n    reset timer\nend\n\nwhen [timer v] > (0.001)\nrepeat (100)\n    go to [front v] layer\n    show\nend\n\n