Grasslands A Scrolling Platformer

Instructions: Can this be on trending?\n\nThis may be a little short, but I SPENT DAYS ON THIS! Please love, favourite, and follow me!\n\nReport hate and advertisements!\n\nCredits:\n@griffpatch for the engine, modified by me\n@Stratford James for the player art, win screen, and the mountains.\n@YouRenTan for the rest\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTags(SPAM TIME!)\n#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#all#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#games#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art#art

@Stage\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [Summertime - K-2 v] until done\nend\n\nwhen flag clicked\nbroadcast (Intro v) and wait\nbroadcast (Begin v)\n\nwhen I receive [win v]\nrepeat (10)\n    change volume by (-10)\nend\n\n@Player\n\nwhen I receive [begin v]\ndelete all of [checkpoint v]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Set Up v) and wait\n    Game On\n    repeat until <(EXIT) > []>\n        set rotation style [all around v]\n        Tick\n        broadcast (Tick v) and wait\n    end\nend\n\ndefine Game On\nshow\npoint in direction (90)\nset rotation style [left-right v]\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [exit v] to []\nclear graphic effects\nset size to (100) %\nif <(length of [checkpoint v]) = [0]> then\n    set [x v] to [-200]\n    set [y v] to [-40]\nelse\n    set [x v] to (item (1) of [checkpoint v])\n    set [y v] to (item (2) of [checkpoint v])\nend\nset [sx v] to [0]\nset [sy v] to [0]\n\ndefine Tick\nswitch costume to (yeet v)\nset [pos v] to (join (x) (join [ ] (y)))\nset [cx v] to [0]\nset [cy v] to [0]\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>>> then\n    change [sx v] by (-1.5)\n    change [cx v] by (-1)\nend\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n    change [sx v] by (1.5)\n    change [cx v] by (1)\nend\nif <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n    if <(in air) < [5]> then\n        set [sy v] to [16]\n    end\n    set [cy v] to [1]\nend\nif <[-16] < (sy)> then\n    change [sy v] by (-2)\nend\nChange player y by (sy)\nTest Die\nset [sx v] to ((sx) * (0.85))\nChange player x by (round (sx))\nset [scroll x v] to (x)\nchange [scroll y v] by (((y) - (SCROLL Y)) / (10))\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nif <(x) < [-220]> then\n    set [x v] to [-220]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [die]\n    start sound [Crunch v]\nend\nTest Die\nswitch costume to (idle v)\npoint in direction (90)\nif <(cx) = [0]> then\n    if <(cy) = [1]> then\n        switch costume to (jump v)\n    end\nelse\n    switch costume to (jump v)\n    if <(cx) = [-1]> then\n        point in direction (0)\n        if <(cy) = [1]> then\n            switch costume to (leftjump v)\n        end\n    else\n        switch costume to (right v)\n        point in direction (180)\n        if <(cy) = [1]> then\n            switch costume to (rightjump v)\n        end\n    end\nend\n\ndefine Change player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platform v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        if <[0] > (sy)> then\n            change [y v] by (1)\n        end\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\n\ndefine Position\ngo to x: (round ((x) - (SCROLL X))) y: (round ((y) - (SCROLL Y)))\nif <<(x position) = (round ((x) - (SCROLL X)))> and <(y position) = (round ((y) - (SCROLL Y)))>> then\n    show\nelse\n    hide\nend\n\ndefine Change player x by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (platform v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (platform v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (platform v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            if <[0] > (sx)> then\n                change [x v] by (1)\n            end\n        end\n        Position\n    end\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n        if <(sx) > [0]> then\n            set [sx v] to [-12]\n        else\n            set [sx v] to [12]\n        end\n        set [in air v] to [0]\n    else\n        set [sx v] to [0]\n    end\nend\n\ndefine Test Die\nif <touching (danger v)?> then\n    set [exit v] to [die]\n    start sound [Crunch v]\nend\n\nwhen [space v] key pressed\nif <(username) = [YouRenTan]> then\n    show variable [pos v]\nend\n\nwhen [0 v] key pressed\nif <(username) = [YouRenTan]> then\n    hide variable [pos v]\nend\n\n@Platform\n\nwhen I receive [tick v]\nshow\nPosition x (round ((x) - (SCROLL X))) y (round ((y) - (SCROLL Y)))\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [set up v]\nswitch costume to (level 1 1 v)\nhide\nClone at x [0] y [0] # [1]\nClone at x [500] y [0] # [2]\nClone at x [1200] y [0] # [3]\nClone at x [1500] y [0] # [4]\n\ndefine Position x (x) y (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x (x) y (y) # (#)\nset [x v] to (x)\nset [y v] to (y)\nswitch costume to (#)\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\n\nwhen I receive [reset v]\ndelete this clone\n\n@Sun\n\nwhen I receive [tick v]\ngo to [back v] layer\ngo to x: (([sin v] of ((timer) * (100)) ) * (20)) y: (([sin v] of ((timer) * (100)) ) * (20))\n\n@Coins\n\nwhen I receive [tick v]\nshow\nPosition x (round ((x) - (SCROLL X))) y (round ((y) - (SCROLL Y)))\nif <touching (player v)?> then\n    start sound [Collect v]\n    change [coins collected v] by (1)\n    delete this clone\nend\n\ndefine Position x (x) y (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x (x) y (y) # (#)\nset [x v] to (x)\nset [y v] to (y)\nswitch costume to (#)\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\n\nwhen flag clicked\nset [coins collected v] to [0]\nswitch costume to (level 1 1 v)\nhide\nClone at x [-40] y [60] # [1]\nClone at x [130] y [-30] # [1]\nClone at x [315] y [70] # [1]\nClone at x [535] y [60] # [1]\nClone at x [535] y [-70] # [1]\nClone at x [740] y [220] # [1]\nClone at x [955] y [160] # [1]\nClone at x [1150] y [0] # [1]\nClone at x [1525] y [-40] # [1]\nClone at x [1740] y [200] # [1]\nClone at x [1500] y [430] # [1]\nClone at x [1270] y [430] # [1]\n\n@Danger\n\nwhen I receive [tick v]\nshow\nPosition x (round ((x) - (SCROLL X))) y (round ((y) - (SCROLL Y)))\nif <(costume [number v]) = [1]> then\n    point in direction ((90) + (([sin v] of ((timer) * (50)) ) * (270)))\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [set up v]\nswitch costume to (level 1 1 v)\nhide\nClone at x [-40] y [-70] # [Saws] Size [150]\nClone at x [1380] y [-90] # [Saws] Size [150]\nClone at x [1400] y [390] # [Saws] Size [150]\n\ndefine Position x (x) y (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x (x) y (y) # (#) Size (size)\nset [x v] to (x)\nset [y v] to (y)\nset size to (size) %\nswitch costume to (#)\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\n\nwhen I receive [reset v]\ndelete this clone\n\n@Mountain\n\nwhen I receive [tick v]\ngo to [back v] layer\nPos ((bx) - ((SCROLL X) / (5))) ((by) - ((SCROLL Y) / (5)))\n\ndefine Pos (x) (y)\ngo to x: (round (x)) y: (round (y))\nif <<(round (y)) = (y position)> and <(round (x)) = (x position)>> then\n    show\nelse\n    hide\nend\n\ndefine clone mountains (m)\nset [bx v] to [0]\nset [by v] to [0]\nrepeat (m)\n    switch costume to (pick random (1) to (2))\n    create clone of (_myself_ v)\n    change [bx v] by (550)\nend\n\nwhen flag clicked\nclone mountains [5]\n\n@Decoration\n\nwhen I receive [tick v]\nshow\ngo to [back v] layer\ngo [forward v] (1) layers\nPosition x (round ((x) - (SCROLL X))) y (round ((y) - (SCROLL Y)))\n\nwhen I receive [intro v]\nhide\nClone at x [0] y [0] # [1]\nClone at x [500] y [0] # [2]\nClone at x [1200] y [0] # [3]\nClone at x [1500] y [0] # [4]\n\ndefine Position x (x) y (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x (x) y (y) # (#)\nset [x v] to (x)\nset [y v] to (y)\nswitch costume to (#)\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\n\n@Thumbnail\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\n\n@Flags\n\ndefine Clone at x (x) y (y) # (#)\nset [touched v] to [0]\nset [x v] to (x)\nset [y v] to (y)\nswitch costume to (#)\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\n\nwhen I receive [tick v]\ngo to [back v] layer\ngo [forward v] (2) layers\nswitch costume to (blank v)\nset size to (200) %\nswitch costume to ((Touched) + (1))\nPosition x (round ((x) - (SCROLL X))) y (round ((y) - (SCROLL Y)))\nif <<touching (player v)?> and <(costume [number v]) = [1]>> then\n    delete all of [checkpoint v]\n    add (x) to [checkpoint v]\n    add (y) to [checkpoint v]\n    start sound [Wand v]\n    switch costume to (flag2 v)\n    set [touched v] to [1]\nend\n\ndefine Position x (x) y (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\nwhen flag clicked\nhide\n\nClone at x [1160] y [20] # [1]\n\n@Win\n\nwhen flag clicked\nshow\nset [coins collected v] to [0]\nset [ghost v] effect to (100)\nwait until <(Coins Collected) = [12]>\nbroadcast (Win v)\nstart sound [Spiral v]\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\n