Grassland-A Scrolling Platformer 

Instructions: Use arrow keys to move,Space bar to change your color. Have Fun! \nCan we get to:\n1000 views\n75 loves\n75 favs\n10 remixes\nCheck out my other Scrolling Platformers:\nhttps://scratch.mit.edu/projects/397039241\nhttps://scratch.mit.edu/projects/396777554\nhttps://scratch.mit.edu/projects/397466597

@Stage\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]\nwait (9.5) seconds\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\nif <(Checkpoint) = [0]> then\n    set [x v] to [0]\n    set [y v] to [0]\n    switch backdrop to (backdrop2 v)\nelse\n    if <(Checkpoint) = [1]> then\n        set [x v] to [2233]\n        set [y v] to [144]\n        switch backdrop to (backdrop2 v)\n    else\n        set [x v] to [4307]\n        set [y v] to [-80]\n        if <(SCROLL X) > [5761]> then\n            switch backdrop to (backdrop2 v)\n        else\n            switch backdrop to (backdrop3 v)\n        end\n    end\nend\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 (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 (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 (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 <(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) > [5761]> then\n    set [scroll x v] to [5761]\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 <(y) < [-178]> then\n    set [exit v] to [Die]\nend\nif <touching (danger v)?> then\n    set [exit v] to [Die]\nend\n\ndefine Change player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platforms 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 (platforms v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        if <(sx) > [0]> then\n            set [speed x v] to [-16]\n        else\n            set [speed x v] to [16]\n        end\n        set [in air v] to [0]\n    else\n        set [speed x v] to [0]\n    end\n    repeat until <not <touching (platforms 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\nset [exit v] to []\nrepeat (5)\n    hide\n    wait (0.1) seconds\n    show\n    wait (0.1) seconds\nend\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)\nend\nhide\nclear graphic effects\nchange [level v] by (1)\nwait (1) seconds\n\ndefine Test - Die\n\nwhen flag clicked\nif <(y position) = [-181]> then\n    broadcast (mou v)\nend\nforever\n\nwhen flag clicked\nswitch costume to (light blue v)\nforever\n    if <key (space v) pressed?> then\n        wait (1) seconds\n        next costume\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (s v) pressed?> then\n        change [scroll x v] by (100)\n    end\nend\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [platforms: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    switch backdrop to (backdrop1 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]\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]\n    Clone at x: [0] y: [360]\n    Clone at x: [480] y: [0]\n    Clone at x: [0] y: [-360]\n    Clone at x: [480] y: [0]\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)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\nClone at x: [1663] y: [557]\n\nwhen flag clicked\nforever\n    if <key (s v) pressed?> then\n        next costume\n    end\n    if <(costume [number v]) = [15]> then\n        switch costume to (level 1-15 v)\n    end\nend\n\n@Danger\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((Danger: y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [danger: 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]\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]\n    Clone at x: [0] y: [360]\n    Clone at x: [480] y: [0]\n    Clone at x: [0] y: [-360]\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)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [danger: y v] by (y)\nnext costume\n\nwhen flag clicked\nforever\n    if <key (s v) pressed?> then\n        next costume\n    end\n    if <(costume [number v]) = [14]> then\n        switch costume to (level 1-14 v)\n    end\nend\n\n@Music\n\n@Other Players\n\nwhen flag clicked\nshow\nwait (9.5) seconds\nhide\nbroadcast (Start v)\n\n@Clouds\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((Clouds: y) - (SCROLL Y))\n\nwhen I receive [setip v]\nhide\nset [x v] to [0]\nset [clouds: y v] to [0]\nset [ghost v] effect to (30)\ngo to [back 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]\n    Clone at x: [480] y: [0]\n    Clone at x: [0] y: [200]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [-100]\n    Clone at x: [480] y: [-100]\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: [0] y: [360]\n    Clone at x: [480] y: [0]\n    Clone at x: [0] y: [-360]\n    Clone at x: [480] y: [0]\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)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [clouds: y v] by (y)\nnext costume\n\nwhen flag clicked\nforever\n    if <key (s v) pressed?> then\n        next costume\n    end\n    if <(costume [number v]) = [16]> then\n        switch costume to (level 1-16 v)\n    end\nend\n\n@Checkpoint \n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((Checkpoint : y) - (SCROLL Y))\nif <(costume [number v]) = [2]> then\n    if <touching (player v)?> then\n        change [checkpoint v] by (1)\n        switch costume to (green flag v)\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\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [checkpoint : y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nset [checkpoint v] to [0]\nhide\nset [x v] to [0]\nset [checkpoint : y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (close flag v)\n    Clone at x: [2233] y: [144]\n    Clone at x: [4307] y: [-80]\nend\nset [x v] to [-99999]\n\n@Intro p:1\n\nwhen flag clicked\nshow\nstart sound [Ikson - Last Summer \(1\) v]\npoint in direction (90)\nwait (1) seconds\nrepeat (8)\n    turn right (45) degrees\n    wait (0.1) seconds\nend\nwait (1) seconds\nrepeat (8)\n    turn left (45) degrees\n    wait (0.1) seconds\nend\nwait (1) seconds\nrepeat (8)\n    turn right (45) degrees\n    wait (0.1) seconds\nend\nwait (1) seconds\nrepeat (8)\n    turn left (45) degrees\n    wait (0.1) seconds\nend\nwait (1) seconds\nhide\nstop all sounds\nforever\n    play sound [K-391 - Summertime v] until done\nend\n\n@eI82U0r (1)\n\nwhen flag clicked\ngo to x: (-11) y: (29)\n\n