CHOMP - A Platformer 

Instructions:                  ✨CHOMP - A Platformer✨\n\nWelcome to my 2nd platformer ever. \nPls ❤️ & ⭐ if you enjoy it, it always makes my day :)\n\nREAD THE INSTRUCTIONS\n=========================================\n\nClick the flag twice \n\nNOTICE: It's better to have a mouse for this game, or shooting might not work as well. Without is still fine, but a bit harder. \n\nINSTRUCTIONS: \n- WASD to move \n- Mouse to aim and shoot \n- Space to chomp \n- Watermelons restore 1 heart \n- Don't touch spikes or other deadly stuff\n- "M" key to silence music, "N" to turn it on again\n- Type "Skip" on your keyboard at any time to skip a level \n- ✨HAVE FUN✨\n\n(Full screen is recommended but you don't have to) \n\nThere is also a timer, but you can ignore it. It will show at the end. My personal speedrun is 49.4 secs, let me know your times in the comments! :) \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nBonus for those who've scrolled all the way down here: \n\nType the word: "love" in-game at any time, to restore yourself to max health :D \n(only works once tho!) 

@Stage\n\nwhen flag clicked\nset [time v] to [0]\nhide variable [time v]\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [you win! v]\nswitch backdrop to (backdrop2 v)\n\nwhen I receive [start/play v]\nrepeat until <(backdrop [number v]) = [2]>\n    change [time v] by (0.1)\n    wait (0.1) seconds\nend\nshow variable [time v]\n\n@Player\n\ndefine walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <touching (stage v)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\n\ndefine touch ground <up?>\nchange [falling v] by (1)\nrepeat until <not <touching (stage v)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\nwhen flag clicked\nswitch costume to (costume3 v)\ngo to x: (-150) y: (0)\nset size to (300) %\nhide\n\nwhen I receive [start/play v]\nforever\n    set [speed x v] to ((speed x) * (0.75))\n    if <touching (spiky things & lava v)?> then\nend\n\nwhen I receive [start/play v]\nforever\n    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(falling) < [3]>> then\n        set [speed y v] to [10]\n    end\nend\n\nwhen I receive [start/play v]\nset [speed y v] to [0]\nforever\n    change [speed y v] by (-1)\n    change y by (speed y)\n    touch ground <(speed y) > [0]>\nend\n\nwhen I receive [start/play v]\nshow\n\nwhen I receive [shoot v]\npoint towards (mouse-pointer v)\nswitch costume to (costume11 v)\nrepeat (10)\n    next costume\nend\nswitch costume to (costume3 v)\npoint in direction (90)\n\nwhen I receive [next stage v]\nif <(level) = [15]> then\n    go to x: (-200) y: (100)\nelse\n    go to x: (-200) y: (-20)\nend\n\nwhen [space v] key pressed\nset [action in play? v] to [1]\nswitch costume to (costume3 v)\nstart sound [Chomp v]\nrepeat (7)\n    next costume\nend\nif <touching (watermelon v)?> then\n    broadcast (chomp! v)\n    broadcast (health up v)\nend\nif <touching (baddies v)?> then\n    start sound [Bite v]\n    broadcast (baddie hit v)\nend\nrepeat (2)\n    next costume\nend\nswitch costume to (costume3 v)\nset [action in play? v] to [0]\n\nwhen I receive [start/play v]\nforever\n\ndefine Slip\n\nchange y by (-2)\nchange x by (1)\nif <touching (stage v)?> then\n    change y by (2)\n    change x by (-1)\nelse\n    set [falling v] to [9]\nend\n\nwhen I receive [die v]\n\nif <key (s v) pressed?> then\n    switch costume to (costume23 v)\nelse\n    switch costume to (costume22 v)\nend\n\nwhen I receive [ko!!! v]\nset [pixelate v] effect to (0)\npoint in direction (90)\nswitch costume to (dead v)\nstop [other scripts in sprite v]\n\nwhen I receive [start/play v]\nforever\n    if <touching (spiky things & lava v)?> then\n        repeat (10)\n            set [speed y v] to [1]\n            set [speed x v] to [0]\n            change [brightness v] effect by (10)\n            set [speed y v] to [1]\n            set [speed x v] to [0]\n        end\n        hide\n        if <(level) = [15]> then\n            go to x: (-200) y: (100)\n        else\n            go to x: (-200) y: (-20)\n        end\n        show\n        repeat (10)\n            change [brightness v] effect by (-10)\n        end\n    end\nend\n\nif <(level) = [17]> then\n    go to x: (-200) y: (-100)\nend\n\nstop [all v]\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [Dance Energetic v] until done\nend\n\nwhen [m v] key pressed\nset volume to (0) %\n\nwhen [n v] key pressed\nset volume to (100) %\n\nwhen flag clicked\n\n@stage\n\nwhen I receive [next stage v]\nnext costume\n\nwhen flag clicked\nset [noskip v] to [0]\nswitch costume to (stage1 v)\nshow\nforever\n    go to [back v] layer\nend\n\nwhen I receive [start/play v]\nset [noskip v] to [0]\nswitch costume to (stage1 v)\ngo to x: (0) y: (0)\nshow\n\nwhen I receive [start/play v]\nforever\n    set [level v] to (costume [number v])\nend\n\nwhen [s v] key pressed\nif <(noskip) = [0]> then\n    wait until <key (k v) pressed?>\n    wait until <key (i v) pressed?>\n    wait until <key (p v) pressed?>\n    broadcast (next stage v)\nend\n\nwhen I receive [start/play v]\nwait until <(level) = [26]>\nset [noskip v] to [1]\nbroadcast (You Win! v)\n\n@spiky things & lava\n\nwhen flag clicked\nforever\n    go to [back v] layer\n    go to x: (0) y: (0)\n    switch costume to (level)\nend\n\nwhen I receive [start/play v]\nforever\n    if <touching (player v)?> then\n        broadcast (Die v)\n        broadcast (lose HP v)\n    end\n    wait until <not <touching (player v)?>>\nend\n\nwhen I receive [start/play v]\nforever\n    if <<touching (player v)?> and <(costume [number v]) = [22]>> then\n        broadcast (Die v)\n        broadcast (lose DOUBLE hp v)\n    end\n    wait until <not <touching (player v)?>>\nend\n\n@thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (0)\nshow\n\nwhen I receive [start/play v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@play button\n\nwhen this sprite clicked\nbroadcast (start/play v)\nhide\n\nwhen flag clicked\nshow\nset size to (500) %\ngo to x: (0) y: (-100)\nset [ghost v] effect to (0)\ngo to [front v] layer\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (520) %\n        change [color v] effect by (5)\n    else\n        set size to (500) %\n        set [color v] effect to (0)\n    end\nend\n\n@mouse - crosshair\n\nwhen I receive [start/play v]\nshow\nforever\n    go to (mouse-pointer v)\nend\n\nwhen I receive [start/play v]\nforever\n    next costume\n    wait (0.05) seconds\n    go to [front v] layer\nend\n\nwhen flag clicked\nset size to (150) %\nhide\n\nwhen this sprite clicked\nif <(shoot delay) = [0]> then\n    broadcast (shoot v)\nend\n\nwhen flag clicked\ngo to [back v] layer\n\n@bullet\n\nwhen flag clicked\nset [shoot delay v] to [0]\nset size to (225) %\nhide\n\nwhen I receive [start/play v]\nhide\n\nwhen I receive [shoot v]\nset [shoot delay v] to [1]\ngo to (player v)\npoint towards (mouse-pointer v)\nwait (0.25) seconds\ngo to (player v)\nshow\nrepeat until <<touching (_edge_ v)?> or <<touching (baddies v)?> or <touching (stage v)?>>>\n    move (10) steps\n    next costume\nend\nif <touching (baddies v)?> then\n    broadcast (baddie hit v)\n    wait (0.1) seconds\nend\nbroadcast (Playersplat v)\nset [shoot delay v] to [0]\nhide\n\nwhen I receive [shoot v]\nwait (0.2) seconds\nplay sound [High Whoosh v] until done\n\n@Sprite1\n\n@Watermelon\n\nwhen flag clicked\nhide\n\nwhen I receive [chomp! v]\nif <(costume [number v]) = [1]> then\n    start sound [Bite v]\n    switch costume to (costume2 v)\nelse\n    start sound [Bite v]\n    hide\nend\n\nwhen I receive [start/play v]\ngo to x: (31) y: (-115)\nswitch costume to (costume1 v)\n\nwhen I receive [next stage v]\nwait (0.1) seconds\nif <(level) = [9]> then\n    show\n    switch costume to (costume1 v)\n    go to x: (50) y: (-115)\nend\nif <(level) = [14]> then\n    show\n    switch costume to (costume1 v)\n    go to x: (175) y: (-115)\nend\nif <(level) = [17]> then\n    show\n    switch costume to (costume1 v)\n    go to x: (-195) y: (65)\nend\nif <(level) = [19]> then\n    show\n    switch costume to (costume1 v)\n    go to x: (160) y: (-90)\nend\nif <(level) = [23]> then\n    show\n    switch costume to (costume1 v)\n    go to x: (160) y: (-90)\nend\n\nwait (1) seconds\ngo to x: (pick random (-200) to (200)) y: (-115)\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [next stage v]\nhide\n\n@HP\n\nwhen flag clicked\nhide\ngo to x: (161) y: (161)\nswitch costume to (costume9 v)\n\nwhen I receive [lose hp v]\nnext costume\n\nwhen flag clicked\nforever\n    change [color v] effect by (1)\nend\n\nwhen I receive [start/play v]\nshow\n\nwhen I receive [health up v]\nif <(costume [number v]) = [1]> then\n\nwhen I receive [start/play v]\nwait until <(costume [number v]) = [7]>\nbroadcast (KO!!! v)\nstop [other scripts in sprite v]\n\nwhen [l v] key pressed\nif <(code: love) = [0]> then\n    wait until <key (o v) pressed?>\n    wait until <key (v v) pressed?>\n    wait until <key (e v) pressed?>\n    broadcast (code: "love" v)\n    set [code: love v] to [1]\nend\n\nwhen I receive [code: "love" v]\nswitch costume to (costume9 v)\n\nwhen flag clicked\nset [code: love v] to [0]\n\nwhen I receive [lose double hp v]\nwait (0) seconds\nnext costume\n\n@baddies\n\nwhen I receive [next stage v]\nwait (0.1) seconds\nif <(level) = [16]> then\n    go to x: (100) y: (-61)\n    switch costume to (costume23 v)\n    create clone of (_myself_ v)\nend\nif <(level) = [17]> then\n    go to x: (55) y: (-30)\n    switch costume to (costume23 v)\n    create clone of (_myself_ v)\nend\nif <(level) = [18]> then\n    go to x: (-205) y: (47)\n    switch costume to (costume23 v)\n    broadcast (wings v)\n    create clone of (_myself_ v)\nend\nif <(level) = [20]> then\n    go to x: (100) y: (100)\n    switch costume to (costume23 v)\n    broadcast (wings v)\n    create clone of (_myself_ v)\nend\nif <(level) = [21]> then\n    go to x: (133) y: (-48)\n    switch costume to (costume23 v)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nset [baddiehp1 v] to [2]\nforever\n    hide\nend\n\nwhen I start as a clone\nset [baddiehp1 v] to [2]\nforever\n    show\nend\n\nwhen I start as a clone\nforever\n    point towards (player v)\n    switch costume to (costume23 v)\n    repeat (10)\n        next costume\n    end\n    broadcast (baddie shoot v)\n    switch costume to (costume23 v)\n    wait (2.5) seconds\nend\n\nwhen I receive [next stage v]\ndelete this clone\n\nforever\n    repeat until <touching (stage v)?>\n        change y by (-1)\n    end\n    repeat until <not <touching (stage v)?>>\n        change y by (1)\n    end\nend\n\nwhen I receive [baddie hit v]\nchange [baddiehp1 v] by (-0.5)\nif <<(baddiehp1) = [0]> or <(baddiehp1) < [0]>> then\n    switch costume to (dead v)\n    wait (0.1) seconds\n    delete this clone\nelse\n    set [brightness v] effect to (50)\n    wait (0.2) seconds\n    set [brightness v] effect to (0)\nend\n\nwhen I start as a clone\nforever\n    if <(flying?) = [1]> then\n        repeat (10)\n            change y by (2)\n        end\n        wait (0.1) seconds\n        repeat (10)\n            change y by (-2)\n        end\n    end\nend\n\nwhen I receive [start/play v]\nforever\n    if <(flying?) = [1]> then\n        repeat (10)\n            change y by (2)\n        end\n        wait (0.1) seconds\n        repeat (10)\n            change y by (-2)\n        end\n    end\nend\n\n@bullet2\n\nwhen flag clicked\nset size to (225) %\nhide\n\nwhen I receive [start/play v]\nhide\n\nwhen I receive [baddie shoot v]\nwait (0.1) seconds\ngo to (baddies v)\npoint towards (player v)\nshow\nrepeat until <<<touching (_edge_ v)?> or <touching (stage v)?>> or <touching (player v)?>>\n    move (10) steps\n    next costume\nend\nbroadcast (splat! v)\nhide\ndelete this clone\n\nwait until <(level) = [1]>\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (lose HP v)\n    end\nend\n\nwhen I receive [baddie shoot v]\nwait (0.2) seconds\nplay sound [High Whoosh v] until done\n\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\n\n@Sprite3\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\n\nwhen I receive [start/play v]\nset [ghost v] effect to (100)\ngo to x: (237) y: (0)\nforever\n    if <touching (player v)?> then\n        broadcast (next stage v)\n    end\nend\n\nwhen I receive [you win! v]\nhide\n\n@player_splat\n\nwhen I receive [playersplat v]\npoint in direction (90)\nswitch costume to (costume1 v)\ngo to (bullet v)\nshow\nrepeat (4)\n    next costume\n    wait (0.05) seconds\nend\nhide\n\nwhen flag clicked\nset size to (350) %\nhide\n\nwhen I receive [playersplat v]\nplay sound [Splat - Gaming Sound Effect \(HD\) v] until done\n\n@enemy_splat\n\nwhen I receive [splat! v]\npoint in direction (90)\nshow\nswitch costume to (costume1 v)\ngo to (bullet2 v)\nrepeat (4)\n    next costume\n    wait (0.05) seconds\nend\nhide\n\nwhen flag clicked\nset size to (350) %\nhide\n\nwhen I receive [start/play v]\nwait until <(level) = [1]>\nhide\n\nwhen I receive [splat! v]\nplay sound [Splat - Gaming Sound Effect \(HD\) v] until done\n\n@Targets\n\nwhen I receive [start/play v]\nwait until <(level) = [11]>\ngo to x: (36) y: (105)\nshow\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nset [ghost v] effect to (0)\nswitch costume to (costume1 v)\nset size to (350) %\nhide\n\nwhen I start as a clone\ngo to x: (-200) y: (60)\nswitch costume to (costume1 v)\nshow\nwait until <touching (bullet v)?>\nswitch costume to (costume2 v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [start/play v]\nwait until <touching (bullet v)?>\nswitch costume to (costume2 v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen I receive [next stage v]\nhide\n\n@Sprite2\n\nwhen I receive [ko!!! v]\ngo to x: (0) y: (325)\nshow\ngo to [front v] layer\nglide (3) secs to x: (0) y: (0)\nstop [all v]\n\nwhen flag clicked\nhide\n\n@Sprite4\n\nwhen flag clicked\nset size to (100) %\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nrepeat (2)\n    go to [front v] layer\nend\n\n@Sprite5\n\nwhen I receive [wings v]\nset [flying? v] to [1]\nshow\nforever\n    go to (baddies v)\nend\n\nwhen flag clicked\nset size to (250) %\nset [flying? v] to [0]\nhide\n\nwhen I receive [start/play v]\nset [flying? v] to [0]\nhide\n\nwhen I receive [wings v]\nforever\n    next costume\n    wait (0.3) seconds\n    if <(baddiehp1) = [0]> then\n        hide\n    end\nend\n\nwhen I receive [next stage v]\nset [flying? v] to [0]\nhide\n\n@Sprite6\n\nwhen I receive [start/play v]\nif <(username) = [lookypookyg]> then\n    go to x: (0) y: (0)\n    go to [front v] layer\n    show\n    stop [all v]\nend\n\nwhen flag clicked\nhide\n\n