Winter World | Platformer 2 #games

Instructions: Welcome to Winter World 2! Its winter so time for another winter game! Have Fun!\n\nReshared because I changed a few things\n\n----------------------INSTRUCTIONS------------------------\n\n- Use arrows or WASD keys to move\n- Trampolines make you bounce high \n- The pink and brown things make you small \n- you jump on the yellow circles \n- The 5 arrows in a row make you fling backwards\n\nAlso watch out for moving enemies and spikes!\n\n---------------------------CREDITS---------------------------\n\nThanks to @InfinitelyEndless for most of the platformer character code! :D\n\nNO ADVERTIZING\n\n#games #games #games #games #games #games #games #games #games #games #games #games

@Stage\n\nwhen I receive [start v]\nwait (2) seconds\nforever\n    set volume to (50) %\n    play sound [\[Royalty Free Music\] Winter Sunshine - Nicolai Heidlas v] until done\nend\n\nwhen I receive [sound on v]\nset volume to (50) %\n\nwhen I receive [sound v]\nset volume to (0) %\n\nwhen flag clicked\nswitch backdrop to (backdrop2 v)\n\nwhen I receive [next level v]\nif <(Level) = [9]> then\n    switch backdrop to (backdrop3 v)\nend\nif <(Level) = [10]> then\n    switch backdrop to (backdrop9 v)\nend\n\n@Player\n\nwhen flag clicked\nforever\n    if <<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>>> and <<touching (orbs v)?> or <touching (line v)?>>> then\n        change [y v v] by (3)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (speed v)?> then\n        change [x v v] by (-6)\n    end\n    if <touching (size o meter v)?> then\n        broadcast (Small v)\n        set size to (40) %\n        wait (3) seconds\n        set size to (100) %\n    end\nend\n\ndefine reset\nclear graphic effects\ngo to x: (-200) y: (-50)\npoint in direction (90)\nset [dead? v] to [0]\nset [x v v] to [0]\nset [y v v] to [0]\nset size to (100) %\nshow\n\nwhen I receive [next level v]\nset [change? v] to [1]\nreset\nset [change? v] to [0]\n\nwhen I receive [start v]\nset [level v] to [1]\nset [dead? v] to [0]\nset size to (100) %\nreset\nforever\n    go to [front v] layer\n    if <<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> and <(dead?) = [0]>> then\n        change [x v v] by (.9)\n    end\n    if <<<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> and <(dead?) = [0]>> then\n        change [x v v] by (-.9)\n    end\n    set [x v v] to ((X v) * (0.9))\n    change x by (X v)\n    if <touching (ground v)?> then\n        change y by (2)\n        if <touching (ground v)?> then\n            change y by (2)\n            if <touching (ground v)?> then\n                change y by (2)\n                if <touching (ground v)?> then\n                    change y by (2)\n                    if <touching (ground v)?> then\n                        change y by (2)\n                        if <touching (ground v)?> then\n                            change x by ((X v) * (-2))\n                            change y by (-5)\n                            if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>>> then\n                                if <(X v) > [0]> then\n                                    set [x v v] to [-5]\n                                else\n                                    set [x v v] to [5]\n                                end\n                                set [y v v] to [13]\n                            else\n                                set [x v v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [y v v] by (-0.8)\n    change y by (Y v)\n    if <<touching (ground v)?> or <<touching (moving ground v)?> or <touching (ice ghost stuff v)?>>> then\n        change y by ((Y v) * (-1))\n        set [y v v] to [0]\n    end\n    change y by (-1)\n    if <<touching (ground v)?> or <<touching (moving ground v)?> or <touching (ice ghost stuff v)?>>> then\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>>> then\n            set [y v v] to [12]\n        end\n    end\n    change y by (1)\n    if <<<<<touching (gears v)?> or <touching (danger v)?>> or <touching (killer wheel2 v)?>> or <touching (lightning v)?>> and <(dead?) = [0]>> then\n        Spin off screen\n    end\n    if <touching (trampoline v)?> then\n        start sound [Big Boing v]\n        set [y v v] to [15]\n    end\nend\n\nwhen I receive [start v]\nforever\n    set [direction v] to (direction)\nend\n\nwhen I receive [start v]\nset [change? v] to [0]\nforever\n    if <touching (flag v)?> then\n        start sound [Ding Sound Effect v]\n        broadcast (NEXT LEVEL v)\n        change [level v] by (1)\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(y position) = [-179]> then\n        Spin off screen\n    end\nend\n\nwhen [r v] key pressed\nif <(dead?) = [0]> then\n    reset\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [start v]\nshow\n\ndefine Spin off screen\nset [dead? v] to [1]\nchange [player death v] by (1)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nreset\n\nwhen I start as a clone\nswitch costume to (center2 v)\nrepeat (10)\n    change [ghost v] effect by (5)\n    change size by (-5)\nend\ndelete this clone\n\nwhen flag clicked\nswitch costume to (center v)\n\nwhen flag clicked\nclear graphic effects\nforever\n    if <<<touching (spikes v)?> or <touching (moving danger v)?>> or <touching (moving spikes v)?>> then\n        start sound [\[another deltarune noise\] v]\n        broadcast (Dead v)\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        go to x: (-200) y: (-65)\n        clear graphic effects\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (enemy v)?> then\n        go to x: (-200) y: (-65)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nif <touching (trampoline v)?> then\n\nset [y v v] to [0]\n\nwait (1) seconds\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\n\nwhen flag clicked\nbroadcast (Start v)\n\n@Ground\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [front v] layer\nhide\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [key v]\nswitch costume to (key 7 v)\n\nwhen I receive [dead v]\nif <(costume [name v]) = [Key 7]> then\n    switch costume to (costume7 v)\nend\n\n@Snow\n\nwhen I receive [start v]\ngo to [back v] layer\ngo [forward v] (1) layers\nhide\nforever\n    create clone of (_myself_ v)\n    wait (pick random (0.1) to (0.4)) seconds\nend\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nshow\ngo to x: (pick random (-227) to (228)) y: (180)\nrepeat until <(y position) < [-174]>\n    change y by (-2)\nend\ndelete this clone\n\n@Stuff\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [start v]\nshow\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Hands\n\nwhen I receive [start v]\nset size to (50) %\nswitch costume to (costume1 v)\nshow\nforever\n    go to (player v)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [small v]\nset size to (22) %\nswitch costume to (costume2 v)\nwait (3) seconds\nswitch costume to (costume1 v)\nset size to (50) %\n\n@Flag\n\nwhen flag clicked\nhide\nswitch costume to (green flag v)\ngo to x: (0) y: (0)\n\nwhen I receive [start v]\nshow\nwait (1) seconds\ngo to [back v] layer\ngo [forward v] (1) layers\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [start v]\nshow\nforever\n    repeat (10)\n        change y by (-0.5)\n    end\n    repeat (10)\n        change y by (0.5)\n    end\nend\n\n@Sound\n\nwhen this sprite clicked\nif <(costume [number v]) = [1]> then\n    switch costume to (costume2 v)\n    broadcast (Sound v)\nelse\n    switch costume to (costume1 v)\n    broadcast (Sound On v)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nshow\nswitch costume to (costume1 v)\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@Clouds\n\nwhen flag clicked\nset [ghost v] effect to (70)\nforever\n    go to x: (-26) y: (19)\n    glide (8) secs to x: (-300) y: (13)\nend\n\nwhen flag clicked\ngo to [back v] layer\nhide\n\nwhen I receive [start v]\nshow\n\n@Spikes\n\nwhen flag clicked\ngo to x: (36) y: (28)\nhide\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [forward v] (1) layers\n\nwhen I receive [start v]\nshow\nforever\n    repeat (10)\n        change y by (-0.5)\n    end\n    repeat (10)\n        change y by (0.5)\n    end\nend\n\nwhen I receive [next level v]\nnext costume\nif <(Level) = [11]> then\n    switch costume to (costume12 v)\nend\n\n@Moving danger\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next level v]\npoint in direction (90)\nnext costume\nif <(costume [number v]) = [5]> then\n    switch costume to (costume5 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [6]>\n        repeat (45)\n            change x by (3)\n        end\n        repeat (45)\n            change x by (-3)\n        end\n    end\nend\nif <(costume [number v]) = [7]> then\n    switch costume to (costume7 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [8]>\n        repeat (55)\n            change x by (-3)\n        end\n        repeat (55)\n            change x by (3)\n        end\n    end\nend\nif <(costume [number v]) = [10]> then\n    switch costume to (costume10 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [11]>\n        repeat (60)\n            change x by (3)\n        end\n        repeat (60)\n            change x by (-3)\n        end\n    end\nend\n\nwhen I receive [start v]\nshow\n\n@Moving ground\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next level v]\nnext costume\nif <(costume [number v]) = [3]> then\n    switch costume to (costume3 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [4]>\n        repeat (40)\n            change x by (3)\n        end\n        repeat (40)\n            change x by (-3)\n        end\n    end\nend\nif <(costume [number v]) = [4]> then\n    switch costume to (costume4 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [5]>\n        repeat (60)\n            change x by (2)\n        end\n        repeat (60)\n            change x by (-2)\n        end\n    end\nend\nif <(costume [number v]) = [6]> then\n    switch costume to (costume6 v)\n    go to x: (0) y: (0)\n    repeat until <(costume [number v]) = [7]>\n        repeat (80)\n            change x by (-3)\n        end\n        repeat (80)\n            change x by (3)\n        end\n    end\nend\n\nwhen I receive [start v]\nshow\n\n@Skip\n\nwhen flag clicked\nhide\nset volume to (100) %\n\nwhen I receive [start v]\nshow\nswitch costume to (costume1 v)\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\nwhen this sprite clicked\nbroadcast (NEXT LEVEL v)\nchange [level v] by (1)\n\nwhen I receive [start v]\nforever\n    if <([costume # v] of [ground v]) = [11]> 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\n@Trampoline\n\nwhen flag clicked\nhide\nswitch costume to (t1 v)\n\nwhen I receive [start v]\nshow\nwait (1) seconds\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [start v]\ngo to x: (0) y: (0)\nshow\nforever\n    repeat (10)\n        change y by (-0.2)\n    end\n    repeat (10)\n        change y by (0.2)\n    end\nend\n\n@Moving spikes\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\ngo to [back v] layer\n\nwhen I receive [start v]\ngo to x: (28) y: (18)\nshow\nforever\n    repeat (20)\n        change y by (-2)\n    end\n    wait (2) seconds\n    repeat (20)\n        change y by (2)\n    end\n    wait (2) seconds\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Size O meter\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\ngo to [back v] layer\n\nwhen I receive [start v]\ngo to x: (28) y: (18)\nshow\nforever\n    repeat (10)\n        change y by (0.2)\n    end\n    repeat (10)\n        change y by (-0.2)\n    end\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Speed\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [start v]\nswitch costume to (costume1 v)\nshow\n\n@Orbs\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nswitch costume to (costume1 v)\nshow\n\n@Bird\n\nwhen I receive [start v]\nset [ghost v] effect to (49)\ngo to x: (251) y: (pick random (21) to (176))\nforever\n    repeat (6)\n        wait (Bird Flight Speed) seconds\n        next costume\n    end\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume9 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume8 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume7 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume6 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume5 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume3 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume1 v)\nend\n\nwhen flag clicked\nset [ghost v] effect to (30)\nset [bird flight speed v] to [0.1]\nhide\nwait (3) seconds\ngo to [back v] layer\n\nwhen I receive [start v]\ngo to [front v] layer\nswitch costume to (costume1 v)\nshow\nforever\n    if <(x position) < [-248]> then\n        hide\n        wait (1) seconds\n        go to x: (251) y: (pick random (21) to (176))\n        show\n    end\n    change x by (-2)\nend\n\n@Bird2\n\nwhen I receive [start v]\nset [ghost v] effect to (49)\ngo to x: (251) y: (pick random (21) to (176))\nforever\n    repeat (6)\n        wait (Bird Flight Speed) seconds\n        next costume\n    end\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume9 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume8 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume7 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume6 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume5 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume3 v)\n    wait (Bird Flight Speed) seconds\n    switch costume to (costume1 v)\nend\n\nwhen flag clicked\nset [ghost v] effect to (30)\nset [bird flight speed v] to [0.1]\nhide\nwait (3) seconds\ngo to [back v] layer\n\nwhen I receive [start v]\nswitch costume to (costume1 v)\nshow\nforever\n    if <(x position) < [-248]> then\n        hide\n        wait (1) seconds\n        go to x: (251) y: (pick random (21) to (176))\n        show\n    end\n    change x by (-2.5)\nend\n\n@Love fave\n\nwhen I receive [start v]\nset [costume v] to [0]\nhide\nforever\n    if <not <<(LOVED__) = [1]> and <(FAVED___) = [1]>>> then\n        wait (pick random (30) to (40)) seconds\n        switch costume to (costume2 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\n    end\n    if <(Costume) > [0]> then\n        hide\n        stop [this script v]\n    end\nend\n\n@Sprite1\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\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 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 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 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\n