Four Seasons __ A Platformer Collab (1) 
@Stage\n\nwhen flag clicked\nforever\n    play sound [Vicetone_-_United_We_Dance v] until done\nend\n\n@Player\n\nwhen flag clicked\nshow\nforever\n    wait (10) seconds\n    switch costume to (center v)\n    wait (00.1) seconds\n    switch costume to (center2 v)\n    wait (00.1) seconds\n    switch costume to (center3 v)\n    wait (00.1) seconds\n    switch costume to (center4 v)\n    wait (00.1) seconds\n    switch costume to (costume1 v)\n    wait (00.1) seconds\n    switch costume to (center v)\nend\n\n\n\nwhen I receive [play v]\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]\nshow\nset [change? v] to [1]\nreset\nset [change? v] to [0]\n\nwhen I receive [alright bros let's go v]\nshow\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 (level v)?> then\n        change y by (2)\n        if <touching (level v)?> then\n            change y by (2)\n            if <touching (level v)?> then\n                change y by (2)\n                if <touching (level v)?> then\n                    change y by <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<<mouse down?> and <((mouse y) - (y position)) > [50]>> and <touching (level v)?>>>\n                    if <touching (level v)?> then\n                        change y by (2)\n                        if <touching (level 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 (level 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 (level 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 (spikes v)?> or <touching (spikes v)?>> or <touching (snow v)?>> or <touching (water v)?>> and <(dead?) = [0]>> then\n        Spin off screen\n    end\n    if <touching (trampoline! v)?> then\n        set [y v v] to [20]\n    end\nend\n\nwhen I receive [alright bros let's go v]\nforever\n    set [direction v] to (direction)\nend\n\nwhen I receive [alright bros let's go v]\nset [change? v] to [0]\nforever\n    if <<(x position) = [240]> and <(dead?) = [0]>> then\n        broadcast (NEXT LEVEL v)\n        change [level v] by (1)\n    end\nend\n\nwhen I receive [alright bros let's go 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 [alright bros let's go v]\nshow\n\ndefine Spin off screen\nset [dead? v] to [1]\nchange [player death v] by (1)\nshow\nwait (0.2) seconds\nhide\nwait (0.2) seconds\nshow\nwait (0.2) seconds\nhide\nwait (0.2) seconds\nshow\nwait (0.2) seconds\nhide\nreset\n\nwhen I receive [alright bros let's go v]\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nrepeat (10)\n    change [ghost v] effect by (5)\n    change size by (-5)\nend\ndelete this clone\n\nwhen flag clicked\nbroadcast (alright bros let's go v)\n\nwhen flag clicked\n\nset [x v] to (item (1) of [save scroll x v])\nset [my variable v] to (item (1) of [save scroll y v])\nforever\n    if <touching (spikes v)?> then\n        start sound [Crunch v]\n        hide\n        stop [other scripts in sprite v]\n        set [brightness v] effect to (100)\n        set [x v] to (item (1) of [save scroll x v])\n        set [my variable v] to (item (1) of [save scroll y v])\n        stop [other scripts in sprite v]\n        set [ded v] to [1]\n        reset\n    end\nend\n\nbroadcast (restart v)\n\ngo to x: (-200) y: (-50)\n\nwhen flag clicked\nforever\n    if <key (m v) pressed?> then\n        forever\n            stop all sounds\n        end\n    end\nend\n\n@water\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\nforever\n    set [ghost v] effect to (40)\n    go to x: (0) y: (0)\n    go to [back v] layer\n    forever\n        wait (.05) seconds\n        repeat (5)\n            wait (.0001) seconds\n            change y by (2)\n        end\n        wait (.05) seconds\n        repeat (5)\n            wait (.0001) seconds\n            change y by (-2)\n        end\n    end\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Level\n\nwhen flag clicked\nset [level v] to [1]\nswitch costume to (costume14 v)\n\nwhen I receive [next level v]\nnext costume\nchange [level v] by (1)\n\nwhen backdrop switches to [background2 v]\n\nwhen flag clicked\nwait until <(level) = [18]>\nbroadcast (Boss v)\n\n@Spikes\n\nwhen flag clicked\nswitch costume to (2 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Clouds\n\nwhen I start as a clone\nset [ghost v] effect to (50)\nshow\nswitch costume to (pick random (1) to (2))\nset size to (pick random (30) to (50)) %\ngo to x: (400) y: (pick random (0) to (180))\nglide (pick random (5) to (10)) secs to x: (-275) y: (y position)\ndelete this clone\n\nwhen flag clicked\nhide\nforever\n    wait (pick random (1) to (5)) seconds\n    create clone of (_myself_ v)\nend\n\ndefine Layer\ngo to [front v] layer\ngo [backward v] ((item # of [Clouds] in [layers v]) - (1)) layers\n\nwhen I receive [play v]\nLayer\n\n@Deco\n\nwhen flag clicked\nswitch costume to (costume7 v)\n\nwhen I receive [next level v]\nnext costume\n\n@birds2\n\nwhen flag clicked\nset [brightness v] effect to (-1000000)\nset size to (20) %\nforever\n    wait (0.008) seconds\n    next costume\nend\n\nwhen flag clicked\nforever\n    show\n    go to x: (252) y: (106)\n    glide (3) secs to x: (-253) y: (111)\n    hide\n    go to x: (252) y: (106)\n    wait (3) seconds\nend\n\n@Thumbnail\n\nwhen [timer v] > (0.01)\nclear graphic effects\nshow\nswitch costume to (costume2 v)\nset size to (100) %\nswitch costume to (costume1 v)\nset [ghost v] effect to (100)\nrepeat (20)\n    go to [front v] layer\n    change [ghost v] effect by (-5)\nend\ngo to [front v] layer\n\nwhen flag clicked\nforever\n    hide\n    set [ghost v] effect to (100)\n    reset timer\n    switch costume to (costume1 v)\n    set size to (120) %\n    switch costume to (dot3 v)\nend\n\n@trampoline!\n\nwhen flag clicked\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [next level v]\nnext costume\n\nforever\n    if <(Level) < [7]> then\n        hide\n    else\n        if <(Level) = [7]> then\n            show\n            go to x: (-49) y: (-89)\n        else\n            if <(Level) = [8]> then\n                show\n                go to x: (0) y: (-89)\n            else\n                if <(Level) = [9]> then\n                    hide\n                else\n                    if <(Level) = [12]> then\n                        show\n                        go to x: (-148) y: (-93)\n                        create clone of (_myself_ v)\n                        go to x: (0) y: (-93)\n                        create clone of (_myself_ v)\n                        go to x: (148) y: (-93)\n                        wait until <not <(Level) = [12]>>\n                        hide\n                    end\n                end\n            end\n        end\n    end\nend\n\ndelete this clone\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (1 v)\n        repeat (3)\n            next costume\n            wait (0.001) seconds\n        end\n        repeat (3)\n            switch costume to ((costume [number v]) - (1))\n            wait (0.001) seconds\n        end\n    end\nend\n\n@Season Boss\n\ndefine say (say what?) each (time) (seconds) (instrument) (for _beats) (play note)\nset instrument to ((instrument) v)\nbroadcast (say what?)\nset [say! v] to []\nset [idk v] to [0]\nrepeat until <(IDK) = (length of (say what?))>\n    play note ((for _beats)) for (play note) beats\n    change [idk v] by (1)\n    set [say! v] to (join (say!) (letter (IDK) of (say what?)))\n    say (say!)\n    if <(letter (IDK) of (say what?)) = [.]> then\n        wait (1) seconds\n    else\n        if <(letter (IDK) of (say what?)) = [,]> then\n            wait (0.5) seconds\n        else\n            wait (time) seconds\n        end\n    end\nend\nwait (seconds) seconds\nsay []\n\nwhen flag clicked\nhide\ngo to x: (203) y: (-100)\n\nwhen I receive [start! v]\nwait until <(Level) = [13]>\nbroadcast (Fight! v)\n\nwhen I receive [2 v]\nsay [Are you sure?] each [0.01] [1] [] [] []\nbroadcast (3 v)\n\nwhen I receive [fight! v]\nstop [other scripts in sprite v]\nswitch costume to (costume1 v)\nstop all sounds\nshow\nwait (1) seconds\nglide (1) secs to x: (150) y: (-100)\nsay [HAHA,you will never win me!] each [0.01] [1] [] [] []\nbroadcast (1 v)\n\nwhen I receive [boss v]\nshow\nsay [OK,let's start!] each [0.01] [1] [] [] []\nsay [Water Snow,shoot! ] each [0.01] [1] [] [] []\nbroadcast (5 v)\nset [speed v] to [15]\nrepeat (20)\n    set [y rocket v] to (pick random (-100) to (50))\n    broadcast (ROCKET!!!!! v)\n    wait (pick random (1) to (3)) seconds\n    if <(pick random (1) to (3)) = [3]> then\n        broadcast (say something v)\n    end\n    change [speed v] by (0.5)\nend\nsay [OH NO,YOU WON ME!!] each [0.01] [1] [] [] []\nbroadcast (LOL! v)\nglide (0.4) secs to x: (150) y: (180)\nhide\n\nwhen I receive [lol! v]\nforever\n    switch costume to (costume5 v)\n    wait (pick random (2) to (5)) seconds\nend\n\nwhen I receive [say something v]\nif <(pick random (1) to (4)) = [4]> then\n    say [please die!] each [0.01] [1] [] [] []\nelse\n    if <(pick random (1) to (3)) = [3]> then\n        say [C'mon die!] each [0.01] [1] [] [] []\n    else\n        if <(pick random (1) to (2)) = [2]> then\n            say [Stop it!] each [0.01] [1] [] [] []\n        else\n            say [AHH!] each [0.01] [1] [] [] []\n        end\n    end\nend\n\nbroadcast (THE END! v)\n\n@Snow\n\nwhen flag clicked\nhide\n\nwhen I receive [rocket!!!!! v]\nshow\ngo to x: (240) y: (y rocket)\npoint towards (player v)\nrepeat until <<touching (player v)?> or <(x position) < [-239]>>\n    move (Speed) steps\nend\nhide\n\n@Water\n\nwhen flag clicked\nhide\n\nwhen I receive [rocket!!!!! v]\nshow\ngo to x: (240) y: ((y rocket) + (pick random (50) to (100)))\npoint towards (player v)\nrepeat until <<touching (player v)?> or <(x position) < [-239]>>\n    move (Speed) steps\nend\nhide\n\n
Welcome to four seasons\n\nUse arrow keys or wasd\n\nLove fave and follow\n\npropose this here https://scratch.mit.edu/studios/4228481/comments/