Winter : A 360 Platformer

Instructions: Arrow keys for movement\nTry to beat all levels\n

@Stage\n\n@Platform\n\ndefine SET HACK SIZE TO (number or text)\nswitch costume to (size hack v)\nset size to (number or text) %\nswitch costume to (costume1 v)\n\nwhen I receive [respawn v]\npoint in direction (90)\ngo to x: (-10) y: (-500)\nset [d vel v] to [0]\nset [y vel v] to [0]\n\nwhen flag clicked\nshow\nbroadcast (respawn v)\nSET HACK SIZE TO [200]\nforever\n    change [y vel v] by (1)\n    if <key (right arrow v) pressed?> then\n        change [d vel v] by (-0.2)\n        broadcast (Right v)\n    end\n    if <key (left arrow v) pressed?> then\n        change [d vel v] by (0.2)\n        broadcast (Left v)\n    end\n    if <not <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>>> then\n        broadcast (Idle v)\n    end\n    set [d vel v] to ((d vel) * (0.8))\n    turn right (d vel) degrees\n    if <touching (player v)?> then\n        change y by (-1)\n        if <touching (player v)?> then\n            change y by (-1)\n            if <touching (player v)?> then\n                change y by (-1)\n                if <touching (player v)?> then\n                    change y by (-1)\n                    if <touching (player v)?> then\n                        change y by (4)\n                        turn right ((d vel) * (-1)) degrees\n                        set [d vel v] to [0]\n                    end\n                end\n            end\n        end\n    end\n    change y by (y vel)\n    if <touching (player v)?> then\n        change y by ((y vel) * (-1))\n        set [y vel v] to [0]\n    end\n    change y by (1)\n    if <touching (player v)?> then\n        if <key (up arrow v) pressed?> then\n            set [y vel v] to [-12]\n        end\n    end\n    change y by (-1)\nend\n\nwhen I receive [next level v]\nbroadcast (respawn v)\nnext costume\n\n@player\n\nwhen I receive [respawn v]\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen flag clicked\ngo to x: (0) y: (-1)\nshow\nforever\n    change y by (-5)\n    if <<touching color (#57d0ff)?> or <touching color (#429fc3)?>> then\n        broadcast (respawn v)\n    end\n    if <touching color (#013750)?> then\n        set [y vel v] to [-20]\n    end\n    if <touching color (#00ff5f)?> then\n        broadcast (Next level v)\n    end\n    if <touching color (#b0b0b0)?> then\n        broadcast (respawn v)\n    end\n    change y by (5)\nend\n\nwhen I receive [idle v]\nswitch costume to (costume1 v)\n\nwhen I receive [left v]\nswitch costume to (costume3 v)\n\nwhen I receive [right v]\nswitch costume to (costume2 v)\n\n@ clouds\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nset size to (pick random (50) to (80)) %\nshow\ngo to [back v] layer\nset [ghost v] effect to (20)\nswitch costume to (pick random (1) to (4))\nif <(side) = [1]> then\n    go to x: (300) y: (pick random (150) to (100))\n    repeat until <(x position) < [-250]>\n        change x by (-1)\n    end\n    delete this clone\nend\nif <(side) = [2]> then\n    go to x: (-300) y: (pick random (150) to (100))\n    repeat until <(x position) > [250]>\n        change x by (1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nforever\n    go [backward v] (1) layers\n    go to [back v] layer\nend\n\nwhen flag clicked\nforever\n    set [side v] to (pick random (1) to (2))\n    create clone of (_myself_ v)\n    wait (pick random (1) to (2)) seconds\nend\n\n@snow\n\nwhen flag clicked\ngo to [front v] layer\ngo [backward v] (1) layers\nset pen color to (#ffffff)\nset [h v] to [360]\nset [w v] to [480]\nset [angle v] to [0]\nset [maxparticles v] to [75]\ndelete (all) of [x v]\ndelete (all) of [y v]\ndelete (all) of [r v]\ndelete (all) of [d v]\nset [i v] to [0]\nrepeat until <(i) = (maxParticles)>\n    add (((W) * (pick random (0) to (0.99))) - (240)) to [x v]\n    add (((H) * (pick random (0) to (0.99))) - (180)) to [y v]\n    add (((pick random (0) to (0.99)) * (4)) + (1)) to [r v]\n    add ((maxParticles) * (pick random (0) to (0.99))) to [d v]\n    change [i v] by (1)\nend\nforever\n    Draw\nend\n\ndefine Update\nchange [angle v] by (0.5)\nset [i v] to [0]\nrepeat until <(i) = (maxParticles)>\n    replace item (i) of [y v] with ((item (i) of [y v]) - ((([cos v] of ((Angle) + (item (i) of [d v])) ) + (1)) + ((item (i) of [r v]) / (2))))\n    replace item (i) of [x v] with ((item (i) of [x v]) + (([sin v] of (Angle) ) * (2)))\n    if <<(item (i) of [x v]) > [245]> or <<(item (i) of [x v]) < [-245]> or <(item (i) of [y v]) < [-180]>>> then\n        if <((i) mod (3)) > [0]> then\n            replace item (i) of [x v] with (((pick random (0) to (0.99)) * (W)) - (240))\n            replace item (i) of [y v] with [190]\n        else\n            if <([sin v] of (Angle) ) > [0]> then\n                replace item (i) of [x v] with [-245]\n                replace item (i) of [y v] with (((pick random (0) to (0.99)) * (H)) - (180))\n            else\n                replace item (i) of [x v] with [245]\n                replace item (i) of [y v] with (((pick random (0) to (0.99)) * (H)) - (180))\n            end\n        end\n    end\n    change [i v] by (1)\nend\n\ndefine Draw\nerase all\nset [i v] to [0]\nrepeat until <(i) = (maxParticles)>\n    go to x: (item (i) of [x v]) y: (item (i) of [y v])\n    set pen size to (item (i) of [r v])\n    pen down\n    pen up\n    change [i v] by (1)\nend\nUpdate\n\n@Thumbnail\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\n\n