SnowMan A Platformer                     #games #explore #Capt_Boanerges

Instructions:                    ❅  ❅  ❅ SnowMan ❅  ❅  ❅  \n_________________________________________________\n: WASD and Arrow Keys N to skip\nLove and Favorite for more fun games!\nPlay as a snowman who meets a not althogether bad demise.\n_________________________________________________\n          ✅ Please follow @Capt_Boanerges for \n                             more cool games!\n                Also consider subbing to me on yt https://www.youtube.com/channel/UCNh18K3f8Xii1uf7rqFoOMQ\n\n\n

@Stage\n\n@Snow Particles\n\nwhen flag clicked\nhide\nset size to (100) %\nset [ghost v] effect to (0)\nset [brightness v] effect to (0)\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nswitch costume to (costume1 v)\nset [brightness v] effect to (pick random (80) to (100))\nset [ghost v] effect to (pick random (50) to (100))\nset size to (pick random (50) to (100)) %\nshow\nset x to (pick random (-230) to (230))\nset y to (180)\nset [snow x v] to (pick random (-5) to (5))\nset [snow y v] to (pick random (-5) to (-3))\nrepeat until <<(y position) < [-170]> or <touching (ground v)?>>\n    turn right (snow x) degrees\n    change x by (snow x)\n    change y by (snow y)\n    change [snow x v] by (pick random (-0.1) to (0.1))\n    change [snow y v] by (pick random (-0.1) to (0.1))\n    if <(snow y) > [-0.1]> then\n        set [snow y v] to [-0.1]\n    end\n    if <touching (_edge_ v)?> then\n        delete this clone\n    end\nend\ndelete this clone\n\n@Intro\n\nwhen flag clicked\n\ngo to x: (0) y: (0)\nhide\nwait (2) seconds\nset [ghost v] effect to (100)\nset [brightness v] effect to (-100)\nshow\nswitch costume to (costume2 v)\nNEXT WORD\nNEXT WORD\nNEXT WORD\nbroadcast (Play! v)\n\ndefine NEXT WORD\nnext costume\nset [my variable v] to [-0.1]\nrepeat (40)\n    change [ghost v] effect by (my variable)\n    change [brightness v] effect by ((my variable) * (-1))\n    change [my variable v] by (-0.1)\nend\nwait (1) seconds\nset [my variable v] to [0.1]\nrepeat (40)\n    change [ghost v] effect by (my variable)\n    change [brightness v] effect by ((my variable) * (-1))\n    change [my variable v] by (0.1)\nend\nset [ghost v] effect to (100)\nset [brightness v] effect to (-100)\n\nwhen flag clicked\nbroadcast (Play! v)\n\n@Character\n\nwhen flag clicked\n\ndefine starting position\nbroadcast (restart v)\nset [fallspeed v] to [0]\ngo to x: (-220) y: (0)\nshow\n\nwhen I receive [boing v]\nset [fallspeed v] to [18]\n\nwhen I receive [end of end v]\n\nwhen flag clicked\nhide\n\nif <<<key (w v) pressed?> or <key (w v) pressed?>> or <<key (up arrow v) pressed?> or <key (up arrow v) pressed?>>> then\n    set [fallspeed v] to [12]\n    if <([abs v] of (runspeed) ) = (runspeed)> then\n        set [runspeed v] to [-4]\n    else\n        set [runspeed v] to [4]\n    end\nelse\n    set [runspeed v] to [0]\nend\n\nwait (17) seconds\n\nwhen I receive [end intro v]\n\nstarting position\n\nwhen I receive [play! v]\ngo to x: (0) y: (0)\nset size to (100) %\nhide\nshow\nset [ghost v] effect to (100)\nset [good v] to [1]\nset [takeoffspeed v] to [12]\nset [runspeed v] to [0]\nset [fallspeed v] to [0]\ngo to x: (0) y: (0)\nforever\n    change [fallspeed v] by (-1)\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        set [runspeed v] to [-5]\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        set [runspeed v] to [5]\n    end\n    if <not <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n        set [runspeed v] to [0]\n    end\n    if <touching (water v)?> then\n        change x by ((runspeed) / (3))\n    else\n        change x by (runspeed)\n    end\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (-4)\n        change x by ((runspeed) * (-1))\n    end\n    if <touching (water v)?> then\n        change y by ((fallspeed) / (3))\n    else\n        change y by (fallspeed)\n    end\n    set [y v] to (y position)\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by ((fallspeed) - ((fallspeed) * (2)))\n        set [fallspeed v] to [0]\n    end\n    change y by (-1)\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <<touching (ground v)?> or <touching (ice v)?>>> then\n        set [fallspeed v] to [12]\n    end\n    change y by (1)\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching (water v)?>> then\n        set [fallspeed v] to [5]\n    end\n    if <(x position) > [230]> then\n        if <not <(level) = [16]>> then\n            change [level v] by (1)\n            starting position\n        end\n    end\n    if <touching (spikes v)?> then\n        starting position\n    end\n    if <touching (chainsaw v)?> then\n        starting position\n    end\n    if <key (n v) pressed?> then\n        if <not <(level) = [16]>> then\n            change [level v] by (1)\n            starting position\n            wait until <not <key (n v) pressed?>>\n        end\n    end\n    if <[-180] > (y position)> then\n        starting position\n    end\n    if <touching (falling icycles v)?> then\n        starting position\n    end\n    if <touching (trampoline v)?> then\n        broadcast (boing v)\n        set [fallspeed v] to [18]\n    end\n    if <(level) = [16]> then\n        go to x: (-200) y: (-50)\n        repeat (20)\n            change x by (5)\n        end\n        change x by (4)\n        wait (0.04) seconds\n        change x by (4)\n        wait (0.04) seconds\n        change x by (3)\n        wait (0.04) seconds\n        change x by (3)\n        wait (0.04) seconds\n        change x by (2)\n        wait (0.04) seconds\n        change x by (2)\n        wait (0.04) seconds\n        change x by (1)\n        wait (0.04) seconds\n        change x by (1)\n        broadcast (DEATH BULLDOZER v)\n        wait until <touching (bulldozer v)?>\n        broadcast (explode v)\n        wait (5) seconds\n        broadcast (The End v)\n        stop [this script v]\n    end\nend\n\ngo to [front v] layer\n\nset [ghost v] effect to (100)\ngo to [front v] layer\n\nset [restart v] to [0]\nset [restart v] to [1]\n\nwhen I receive [die v]\nstarting position\n\n@Ground\n\nwhen flag clicked\nset [level v] to [1]\nhide\n\nwhen I receive [play! v]\nshow\ngo to [back v] layer\nforever\n    switch costume to (level)\nend\n\n@Animated Character\n\nwhen flag clicked\nset rotation style [left-right v]\ngo to [front v] layer\nhide\nforever\n    go to (character v)\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        point in direction (-90)\n        next costume\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        point in direction (90)\n        next costume\n    end\n    if <not <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n        switch costume to (costume2 v)\n    end\n    set [x of snowman v] to (x position)\n    set [y of snowman v] to (y position)\nend\n\nset size to (75) %\n\nwhen I receive [play! v]\nshow\n\nwhen I receive [explode v]\nhide\n\n@Assets\n\n@Shadow\n\nwhen flag clicked\nshow\ngo to [back v] layer\nset rotation style [left-right v]\nforever\n    set size to ((100) - ((distance to [animated character v]) / (3))) %\n    set [ghost v] effect to ((30) + ((distance to [animated character v]) / (5)))\n    set x to (x of snowman)\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        point in direction (-90)\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        point in direction (90)\n    end\n    assign y position\nend\n\ndefine assign y position\nset y to (y of snowman)\nrepeat until <<touching (ground v)?> or <<touching (_edge_ v)?> or <touching (ice v)?>>>\n    change y by (-1)\nend\nchange y by (-15)\n\nset y to (-30)\n\nwhen I receive [explode v]\nhide\n\n@Decor\n\nwhen flag clicked\nforever\n    show\n    switch costume to (level)\n    go to x: (0) y: (0)\nend\n\ngo to [front v] layer\n\n@Spikes\n\nwhen I receive [play! v]\nshow\ngo to [back v] layer\nforever\n    switch costume to (level)\nend\n\n@MOON\n\nwhen flag clicked\ngo to [back v] layer\nset [quadratic multiplier v] to [-0.0006]\nforever\n    go to x: (-300) y: (0)\n    repeat until <(x position) = [300]>\n        go to [back v] layer\n        change x by (0.2)\n        set y to (((quadratic multiplier) * ((x position) * (x position))) + (y position of quadratic))\n    end\n    set x to (-300)\nend\n\nset [y position of quadratic v] to [100]\n\nset [brightness v] effect to (0)\n\n@Chainsaw\n\nwhen flag clicked\nset size to (90) %\ngo to [front v] layer\nforever\n    if <(level) = [1]> then\n        hide\n    end\n    if <(level) = [2]> then\n        hide\n    end\n    if <(level) = [3]> then\n        show\n        go to x: (0) y: (-25)\n    end\n    next costume\n    if <(level) = [4]> then\n        hide\n    end\n    if <(level) = [5]> then\n        show\n        go to x: (70) y: (-25)\n    end\n    if <(level) = [6]> then\n        hide\n    end\n    if <(level) = [7]> then\n        hide\n    end\n    if <(level) = [8]> then\n        hide\n    end\n    if <(level) = [9]> then\n        show\n        go to x: (0) y: (60)\n    end\n    if <(level) = [10]> then\n        hide\n    end\n    if <(level) = [11]> then\n        hide\n    end\n    if <(level) = [12]> then\n        hide\n    end\n    if <(level) = [13]> then\n        hide\n    end\n    if <(level) = [14]> then\n        show\n        go to x: (150) y: (-65)\n    end\n    if <(level) = [15]> then\n        hide\n    end\n    if <(level) = [16]> then\nend\n\nturn right (5) degrees\n\ngo to [back v] layer\n\n@Thumbnail\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    show\n    set [ghost v] effect to (100)\nend\n\n@ICE\n\nwhen I receive [restart v]\nstop [other scripts in sprite v]\nbroadcast (reception v)\n\nwhen I receive [reception v]\nshow\ngo to [back v] layer\nset [ghost v] effect to (0)\nforever\n    go to [back v] layer\n    switch costume to (level)\n    if <touching (animated character v)?> then\n        repeat (20)\n            change [ghost v] effect by (4)\n        end\n        broadcast (SHATTER v)\n        repeat (10)\n            change [ghost v] effect by (2)\n        end\n        hide\n        wait (1) seconds\n        wait until <not <touching (animated character v)?>>\n        show\n        repeat (50)\n            change [ghost v] effect by (-2)\n        end\n    end\nend\n\nwhen I receive [play! v]\nbroadcast (reception v)\n\n@falling icycles\n\nwhen flag clicked\nset [level v] to [1]\nhide\nforever\n    if <(level) = [6]> then\n        go to x: (0) y: (40)\n        create clone of (_myself_ v)\n        go to x: (34) y: (40)\n        create clone of (_myself_ v)\n        go to x: (15) y: (40)\n        create clone of (_myself_ v)\n        wait until <<not <(level) = [6]>> or <(restart) = [1]>>\n    end\n    if <(level) = [7]> then\n        go to x: (-130) y: (135)\n        create clone of (_myself_ v)\n        go to x: (-110) y: (135)\n        create clone of (_myself_ v)\n        go to x: (-90) y: (135)\n        create clone of (_myself_ v)\n        wait until <<not <(level) = [7]>> or <(restart) = [1]>>\n    end\n    if <(level) = [14]> then\n        go to x: (40) y: (110)\n        create clone of (_myself_ v)\n        go to x: (55) y: (110)\n        create clone of (_myself_ v)\n        go to x: (25) y: (110)\n        create clone of (_myself_ v)\n        wait until <<not <(level) = [14]>> or <(restart) = [1]>>\n    end\n    if <(level) = [15]> then\n        go to x: (200) y: (120)\n        create clone of (_myself_ v)\n        go to x: (160) y: (120)\n        create clone of (_myself_ v)\n        go to x: (120) y: (120)\n        create clone of (_myself_ v)\n        wait until <<not <(level) = [15]>> or <(restart) = [1]>>\n    end\n    set [restart v] to [0]\n    broadcast (eliminate v)\nend\n\nwhen I start as a clone\nshow\nforever\n    if <<((x position) + (-20)) < (x of snowman)> and <(x of snowman) < ((x position) + (20))>> then\n        set [ice gravity v] to [-1]\n        repeat until <(y position) < [-180]>\n            change y by (ice gravity)\n            change [ice gravity v] by (-1)\n        end\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nset [ice clone level v] to (level)\nforever\n    if <not <(ice clone level) = (level)>> then\n        delete this clone\n    end\nend\n\nwhen I receive [restart v]\nset [restart v] to [1]\n\nwhen I receive [eliminate v]\ndelete this clone\n\n@Trampoline\n\nwhen I receive [boing v]\nswitch costume to (costume1 v)\nrepeat (8)\n    next costume\nend\n\nwhen flag clicked\nforever\n    if <(level) = [1]> then\n        hide\n    end\n    if <(level) = [2]> then\n        hide\n    end\n    if <(level) = [3]> then\n        hide\n    end\n    if <(level) = [4]> then\n        hide\n    end\n    if <(level) = [5]> then\n        hide\n    end\n    if <(level) = [6]> then\n        show\n        go to x: (-100) y: (28)\n    end\n    if <(level) = [7]> then\n        show\n        go to x: (-100) y: (28)\n    end\n    if <(level) = [8]> then\n        hide\n    end\n    if <(level) = [9]> then\n        show\n        go to x: (-150) y: (28)\n    end\n    if <(level) = [10]> then\n        show\n        go to x: (0) y: (28)\n    end\n    if <(level) = [11]> then\n        hide\n    end\n    if <(level) = [12]> then\n        show\n        go to x: (-43) y: (-15)\n    end\n    if <(level) = [13]> then\n        show\n        go to x: (75) y: (-75)\n    end\n    if <(level) = [14]> then\n        show\n        go to x: (-40) y: (30)\n    end\n    if <(level) = [15]> then\n        show\n        go to x: (-20) y: (-2)\n    end\n    if <(level) = [16]> then\n        hide\n    end\nend\n\n@Sprite1\n\nwhen flag clicked\nset [level v] to [1]\nset [luv myself v] to [0]\nforever\n    hide\n    if <(level) = [8]> then\n        go to x: (-200) y: (100)\n        show\n        switch costume to (costume1 v)\n        wait (0.4) seconds\n        create clone of (_myself_ v)\n        repeat (6)\n            wait (0.1) seconds\n            next costume\n        end\n        broadcast (GO v)\n        repeat (3)\n            next costume\n        end\n        switch costume to (costume1 v)\n        wait (1.5) seconds\n    end\n    if <(level) = [10]> then\n        go to x: (-200) y: (100)\n        show\n        switch costume to (costume1 v)\n        wait (0.4) seconds\n        create clone of (_myself_ v)\n        repeat (6)\n            wait (0.1) seconds\n            next costume\n        end\n        broadcast (GO v)\n        repeat (3)\n            next costume\n        end\n        switch costume to (costume1 v)\n        wait (1.5) seconds\n    end\n    if <(level) = [12]> then\n        go to x: (200) y: (100)\n        show\n        switch costume to (costume1 v)\n        wait (0.4) seconds\n        create clone of (_myself_ v)\n        repeat (6)\n            wait (0.1) seconds\n            next costume\n        end\n        broadcast (GO v)\n        repeat (3)\n            next costume\n        end\n        switch costume to (costume1 v)\n        wait (1.5) seconds\n    end\nend\n\nwhen flag clicked\nforever\n    point towards (character v)\n    if <not <<(level) = [8]> or <<(level) = [10]> or <(level) = [12]>>>> then\n        hide\n    end\nend\n\nwhen I start as a clone\nset [stop it arrow v] to [1]\nset [luv myself v] to [1]\nswitch costume to (costume11 v)\nset [clone level sprite v] to (level)\nrepeat until <(stop it arrow) = [0]>\n    point towards (character v)\nend\n\nwhen I receive [go v]\nset [ghost v] effect to (0)\nif <(luv myself) = [1]> then\n    set [stop it arrow v] to [0]\n    repeat until <<touching (_edge_ v)?> or <<touching (ground v)?> or <touching (character v)?>>>\n        move (15) steps\n    end\n    if <touching (character v)?> then\n        broadcast (DIE v)\n        delete this clone\n    end\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nforever\n    if <not <(clone level sprite) = (level)>> then\n        delete this clone\n    end\nend\n\n@Bulldozer\n\nwhen flag clicked\nhide\n\nwhen I receive [death bulldozer v]\nshow\ngo to x: (450) y: (10)\nrepeat (90)\n    change x by (-10)\n    next costume\nend\n\n@particles more\n\nwhen flag clicked\nhide\n\nwhen I receive [explode v]\nclone\n\nwhen I start as a clone\ngo to [front v] layer\nshow\nset size to (pick random (75) to (125)) %\ngo to (animated character v)\nset [snow particle fallspeed v] to (pick random (4) to (8))\nset [snow particle x v] to (pick random (-8) to (8))\nrepeat until <touching (ground v)?>\n    change x by (snow particle x)\n    change y by (snow particle fallspeed)\n    turn right (snow particle x) degrees\n    change [snow particle fallspeed v] by (-0.5)\n    set [snow particle x v] to ((snow particle x) * (0.9))\nend\ndelete this clone\n\ndefine clone\nrepeat (10)\n    switch costume to (costume1 v)\n    create clone of (_myself_ v)\nend\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\n\n@Sprite2\n\nwhen flag clicked\nhide\n\nwhen I receive [the end v]\nset [ghost v] effect to (100)\nshow\nrepeat (100)\n    change [ghost v] effect by (-1)\nend\nwait (10) seconds\nstop [all v]\n\n@Music\n\nwhen flag clicked\nforever\n    play sound [Sled_Ride v] until done\nend\n\n