NATURE || A Scrolling Platformer
@Stage\n\n@Blades\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    Clone at x: [480] y: [-88]\n    Clone at x: [600] y: [-88]\n    Clone at x: [720] y: [-88]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2-1 v)\n        Clone at x: [486] y: [17]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3-1 v)\n            Clone at x: [320] y: [0]\n        end\n    end\nend\nset [x v] to [-99999]\n\ndefine Position (x) (y)\ngo to [back v] layer\nset [brightness v] effect to (0)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\npoint in direction (([cos v] of ((Effect) * (120)) ) * (200))\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\n@Bounce\n\nwhen I receive [green flag v]\nhide\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\nif <touching (player v)?> then\n    switch costume to (close flag2 v)\nelse\n    switch costume to (close flag v)\nend\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [setip v]\nhide\ngo to [back v] layer\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    Clone at x: [888] y: [-78]\n    Clone at x: [1347] y: [-28]\nelse\n    if <(LEVEL) = [2]> then\n        Clone at x: [403] y: [25]\n    else\n        if <(LEVEL) = [3]> then\n            Clone at x: [-122] y: [-74]\n            Clone at x: [226] y: [20]\n            Clone at x: [582] y: [-68]\n            Clone at x: [1144] y: [-75]\n        else\n            Clone at x: [1720] y: [-75]\n            Clone at x: [1951] y: [-75]\n        end\n    end\nend\nset [x v] to [-99999]\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nrepeat (2)\n    next costume\nend\nrepeat (2)\n    switch costume to ((costume [number v]) - (1))\nend\n\nswitch costume to (close flag v)\n\nwait (0.1) seconds\nswitch costume to (close flag3 v)\nwait (0.1) seconds\nswitch costume to (close flag4 v)\n\nswitch costume to (close flag v)\n\n@Coins\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nnext costume\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (player v)?> then\n    start sound [Coin v]\n    change [collected v] by (1)\n    if <(COLLECTED) = (COLLECT MAX)> then\n        broadcast (Open exit v)\n    end\n    delete this clone\nend\n\nwhen I receive [setip v]\nhide\nset [collected v] to [0]\nset [collect max v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (dot v)\n    Clone at x: [-15] y: [0]\n    Clone at x: [200] y: [0]\n    Clone at x: [451] y: [59]\n    Clone at x: [608] y: [121]\n    Clone at x: [676] y: [121]\n    Clone at x: [811] y: [-52]\n    Clone at x: [990] y: [142]\n    Clone at x: [1108] y: [7]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (dot v)\n        Clone at x: [-212] y: [33]\n        Clone at x: [6] y: [-22]\n        Clone at x: [130] y: [79]\n        Clone at x: [251] y: [-11]\n        Clone at x: [251] y: [200]\n        Clone at x: [526] y: [200]\n        Clone at x: [595] y: [-56]\n        Clone at x: [780] y: [-17]\n        Clone at x: [932] y: [-17]\n        Clone at x: [1070] y: [137]\n        Clone at x: [1170] y: [138]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (dot v)\n            Clone at x: [-217] y: [62]\n            Clone at x: [-50] y: [259]\n            Clone at x: [221] y: [196]\n            Clone at x: [399] y: [119]\n            Clone at x: [565] y: [150]\n            Clone at x: [911] y: [40]\n            Clone at x: [1191] y: [113]\n            Clone at x: [1020] y: [205]\n            Clone at x: [856] y: [310]\n            Clone at x: [1072] y: [313]\n        end\n    end\nend\nset [x v] to [-99999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\nchange [collect max v] by (1)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nforever\n    set [display value v] to (join (COLLECTED) (join [ / ] (COLLECT MAX)))\nend\n\nwhen [space v] key pressed\nset [mesee v] to (join ((mouse x) + (SCROLL X)) (join [,] ((mouse y) + (SCROLL Y))))\n\n@Exit\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<(costume [name v]) = [Open]> and <touching (player v)?>> then\n    set [exit v] to [Win]\nend\n\nwhen I receive [setip v]\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (closed v)\n    Clone at x: [1144] y: [184]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (closed v)\n        Clone at x: [936] y: [90]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (closed v)\n            Clone at x: [861] y: [418]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (closed v)\n                set [x v] to [-99999]\n            end\n        end\n    end\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen I receive [open exit v]\nswitch costume to (open v)\n\ndelete this clone\n\n@Level\n\nwhen I start as a clone\n\nwhen I start as a clone\nif <(costume [number v]) = [11]> then\n    forever\n        repeat (150)\n            change [x v] by (2)\n        end\n        repeat (150)\n            change [x v] by (-2)\n        end\n    end\nend\n\nwhen I receive [green flag v]\nhide\nswitch backdrop to (1 v)\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Position (x) (y)\nset [brightness v] effect to ()\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (2-1 v)\n        Clone at x: [480] y: [0]\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (3-1 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            switch costume to (end v)\n        end\n    end\nend\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I start as a clone\n\n    forever\n        repeat (120)\n            change [x v] by (-2)\n        end\n        clear graphic effects\n        repeat (120)\n            change [x v] by (2)\n        end\n    end\nend\n\nwhen I receive [win v]\nif  then\n    delete this clone\nend\nstop [other scripts in sprite v]\n\n\n    forever\n        repeat (120)\n            change [x v] by (-3)\n        end\n        clear graphic effects\n        repeat (120)\n            change [x v] by (3)\n        end\n    end\nend\n\nset [scroll x v] to [0]\n\ncreate clone of (_myself_ v)\n\nif <(LEVEL) = [4]> then\n\nwhen flag clicked\nhide\nwait (10) seconds\nshow\n\n@Spikes\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2-1 v)\n        Clone at x: [480] y: [0]\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3-1 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 3-6 v)\n            end\n        end\n    end\nend\n\ndefine Position (x) (y)\nset [brightness v] effect to (0)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\nif  then\n    delete this clone\nend\nstop [other scripts in sprite v]\n\nwhen I start as a clone\nif <(costume [number v]) = [11]> then\n    forever\n        repeat (150)\n            change [x v] by (2)\n        end\n        clear graphic effects\n        repeat (150)\n            change [x v] by (-2)\n        end\n    end\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@water\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    switch costume to (level 1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nend\nset [x v] to [-99999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I start as a clone\ngo to [back v] layer\nforever\n    set [ghost v] effect to (0)\n    set [brightness v] effect to (0)\n    repeat (20)\n        change [y v] by (-0.5)\n    end\n    repeat (20)\n        change [y v] by (0.5)\n    end\nend\n\n@tree\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nset [ghost v] effect to (10)\ngo to [back v] layer\nif <(LEVEL) = [1]> then\n    switch costume to (1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (2-1 v)\n        Clone at x: [480] y: [0]\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (3-1 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (end v)\n            end\n        end\n    end\nend\n\ndefine Position (x) (y)\ngo to [back v] layer\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\nif  then\n    delete this clone\nend\nstop [other scripts in sprite v]\n\nwhen I start as a clone\nif <(costume [number v]) = [12]> then\n    forever\n        go to [back v] layer\n        repeat (150)\n            change [x v] by (2)\n        end\n        clear graphic effects\n        repeat (150)\n            change [x v] by (-2)\n        end\n    end\nend\n\nClone at x: [480] y: [0]\nClone at x: [480] y: [0]\nClone at x: [480] y: [0]\nClone at x: [480] y: [0]\n\n@Grass\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nset [ghost v] effect to (30)\ngo to [front v] layer\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2-1 v)\n        Clone at x: [480] y: [0]\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (3-1 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (end v)\n            end\n        end\n    end\nend\n\ndefine Position (x) (y)\nset [brightness v] effect to (0)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\nif  then\n    delete this clone\nend\nstop [other scripts in sprite v]\n\nwhen I start as a clone\nif <(costume [number v]) = [11]> then\n    forever\n        repeat (150)\n            change [x v] by (2)\n        end\n        clear graphic effects\n        repeat (150)\n            change [x v] by (-2)\n        end\n    end\nend\n\n@Player\n\nwhen flag clicked\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setip v) and wait\n    Game on\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v) and wait\n    end\n    if <(EXIT) = [Win]> then\n        Game - Win\n    else\n        Game - Die\n    end\nend\n\ndefine Game on\npoint in direction (90)\nset rotation style [left-right v]\nset [x v] to [-122]\nset [y v] to [0]\nset [speed y v] to [0]\nset [speed x v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset size to (10) %\nclear graphic effects\nshow\n\ndefine Tick\nif <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>>> then\n    change [speed x v] by (-2)\n    point in direction (-90)\nend\nif <<key (d v) pressed?> or <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n    change [speed x v] by (2)\n    point in direction (90)\nend\nset [speed x v] to ((Speed x) * (0.8))\nif <([abs v] of (Speed x) ) > [0.9]> then\n    Change player x by (round (Speed x))\nend\nif <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n    if <(in air) < [4]> then\n        set [speed y v] to [16]\n    end\nend\nif <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n    if <touching (water v)?> then\n        set [speed y v] to [10]\n    end\nend\nif <<key (s v) pressed?> or <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>>> then\n    if <touching (water v)?> then\n        set [speed y v] to [-10]\n    end\nend\nif <(Speed y) > [-20]> then\n    change [speed y v] by (-2)\nend\nChange player y by (Speed y)\nTest - Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nif <(SCROLL X) > [960]> then\n    set [scroll x v] to [960]\nend\nif <touching (bounce v)?> then\n    set [speed y v] to [26]\nend\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <<<touching (spikes v)?> or <touching (water v)?>> or <touching (blades v)?>> then\n    set [exit v] to [Die]\nend\nchange [effect v] by (.02)\n\ndefine Change player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (level v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [in air v] to [0]\n    end\n    Position\n    set [speed y v] to [0]\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\ndefine Change player x by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (level v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (level v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    set [speed x v] to [0]\n    repeat until <not <touching (level v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            change [x v] by (1)\n        end\n        Position\n    end\nend\n\ndefine Game - Die\nclear graphic effects\nset rotation style [all around v]\nrepeat (20)\n    turn right (15) degrees\n    change y by (10)\n    change [ghost v] effect by (5)\n    broadcast (Tick v) and wait\nend\nset [exit v] to []\n\ndefine Game - Win\nrepeat (50)\n    point towards (exit v)\n    turn right (65) degrees\n    move ((distance to [exit v]) / (2)) steps\n    change size by (-0.25)\n    change [ghost v] effect by (2)\n    broadcast (Tick v) and wait\nend\nhide\nclear graphic effects\nchange [level v] by (1)\nwait (1) seconds\n\ndefine Test - Die\n\nwhen I receive [win v]\nif  then\n    hide\nend\nstop [other scripts in sprite v]\n\nwhen [r v] key pressed\nset [exit v] to [Die]\n\nif <(SCROLL Y) < [0]> then\n\nif <(LEVEL) = [5]> then\n    set [scroll x v] to [0]\n    set [scroll y v] to [0]\nend\n\nwhen I start as a clone\nclear graphic effects\nset [brightness v] effect to (-100)\nrepeat (10)\n    Position ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\ndefine Position (x) (y)\nset [brightness v] effect to (-50)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nforever\n    play sound [marsmello v] until done\n    set volume to (100) %\nend\n\n
----------------------MOBILE FRIENDLY----------------------\n\nHello! This is my first scrolling platform game. My other platform games are not sliders but most of you know how to play the platform game. Played with the w-a-s-d keys and arrow keys. The water is killing, don't touch it! Sometimes the game may freeze but takes a few seconds at most. I hope you like it. I think 200 likes are enough :P Have fun...  \n-Feel free to tell if there are mistakes. After all, it is my first scrolling platform game  :)\n