Grassy Fun || A scrolling Platformer

Instructions: ▬▬▬▬▬▬▬▬▬ Grassy Fun ▬▬▬▬▬▬▬▬▬\nGuess what?! I'm back from my break, I took a while but it felt great. I wrote A LOT and other than that, I really did nothing. Welp, I have nothing else to say soya.\n\nHow to play: use WASD or arrow keys to move (if you are in the mobile press the screen and drag to move) Parkour your way to end orb with lets you win the level. Don't touch the spikes because why would you? Love, favorite, and follow.\n\n▬▬▬▬▬▬▬▬ Credit of coolness ▬▬▬▬▬▬▬▬\n@Thepugmen: all art/design and levels\n@Griffpatch: pretty much all the scrolling (with me editing it)\n@Scratchinjojomusic: music\n\n\n

@Stage\n\nwhen I receive [begin  v]\nforever\n    if <(LEVEL) > [5]> then\n        set [level v] to [5]\n    end\nend\n\n@player\n\nwhen I receive [greenflah 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 (Setup v) and wait\n    Game on\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v)\n    end\n    if <(EXIT) = [A win win]> then\n        Win\n    else\n        Die\n        Game on\n    end\nend\n\ndefine Game on\nswitch costume to (1 v)\npoint in direction (90)\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [x v] to [0]\nset [y v] to [78]\nset [speedy v] to [0]\nset [sx v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset size to (100) %\nset [ghost v] effect to (0)\nclear graphic effects\nshow\n\ndefine Tick\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 (2)\n    point in direction (90)\nend\nif <<<key (left arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [sx v] by (-2)\n    point in direction (-90)\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.9]> then\n    Change player x by (round (sx))\nend\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(y position) < (mouse y)>>> then\n    if <(In air) < [4]> then\n        set [speedy v] to [16]\n    end\nend\nif <(Speedy) > [-20]> then\n    change [speedy v] by (-1.5)\nend\nChange player y by (Speedy)\nDie? I think so\nchange [scroll x v] by (round (((x) - (SCROLL X)) / (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\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (8)))\nPosition\nif <(SCROLL Y) < [-30]> 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 (objects 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 [speedy 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 (objects v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (objects v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (objects 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 Die\nstart sound [oof v]\nset rotation style [left-right v]\nset [brightness v] effect to (30)\nset [ghost v] effect to (30)\nrepeat (30)\n    change y by (4)\n    change [ghost v] effect by (2.33333333333)\nend\nhide\n\ndefine Die? I think so\nif <touching (ooof v)?> then\n    set [exit v] to [die]\nend\n\ndefine Win\nchange [level v] by (1)\nwait (0.5) seconds\n\nwhen flag clicked\nset [level v] to [0]\n\nwhen I receive [begin  v]\nshow\nset rotation style [left-right v]\nbroadcast (Greenflah v) and wait\nbroadcast (Play game v) and wait\n\nwhen flag clicked\nhide\n\nif <touching (objects v)?> then\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(y position) < (mouse y)>>> then\n        set [y v] to [8]\n        set [sx v] to (((sx) / ([abs v] of (sx) )) * (-4))\n    else\n        set [sx v] to [0]\n    end\nend\n\n@objects\n\nwhen I receive [greenflah v]\nshow\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nset [y v] to [0]\nset [x v] to [0]\nswitch costume to ((1) / (1))\nif <(LEVEL) = [1]> then\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (pt 2 level 1 v)\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (pt 3 level 1 v)\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (pt 4 level 1 v)\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (pt win level 5 v)\n                    Position x: [0] y: [0]\n                end\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 Position x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen flag clicked\nwait until <(LEVEL) = [5]>\nbroadcast (Costume v)\n\nwhen flag clicked\nhide\n\n@Ooof\n\nwhen I receive [greenflah v]\nshow\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nset [y v] to [0]\nset [x v] to [0]\nswitch costume to ((1) / (1))\nif <(LEVEL) = [1]> then\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\n    Position x: [450] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (pt 2 level 1 v)\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n        Position x: [450] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (pt 3 level 1 v)\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n            Position x: [450] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (pt 4 level 1 v)\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n                Position x: [450] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (pt win level 5 v)\n                    Position x: [450] y: [0]\n                end\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 Position x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen flag clicked\nwait until <(LEVEL) = [5]>\nbroadcast (Costume v)\n\nwhen flag clicked\nhide\n\n@Win\n\nwhen I receive [begin  v]\nset [ghost v] effect to (0)\nshow\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<(costume [name v]) = [1]> and <touching (player v)?>> then\n    set [exit v] to [A win win]\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    clear graphic effects\nend\n\nwhen I receive [setup v]\nhide\nset [y v] to [0]\nset [x v] to [0]\nif <(LEVEL) = [1]> then\n    Clone x: [1255] y: [120]\nelse\n    if <(LEVEL) = [2]> then\n        Clone x: [1440] y: [120]\n    else\n        if <(LEVEL) = [3]> then\n            Clone x: [1440] y: [120]\n        else\n            if <(LEVEL) = [4]> then\n                Clone x: [1440] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    Clone x: [1440] y: [0]\n                end\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 x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nset size to (60) %\n\n@intro\n\nwhen I receive [intro v]\nif <(costume [number v]) = [1]> then\n    go to x: (0) y: (180)\n    set [intro: y v] to [-1]\n    repeat (14)\n        change y by (intro: y)\n        set [intro: y v] to ((intro: y) * (1.29))\n    end\nelse\n    go to x: (0) y: (-180)\n    set [intro: y v] to [1]\n    repeat (14)\n        change y by (intro: y)\n        set [intro: y v] to ((intro: y) * (1.29))\n    end\nend\n\nwhen I receive [intro v]\nset size to (10) %\nrepeat (14)\n    change size by (5)\nend\n\nwhen I start as a clone\nshow\nforever\n    if <(costume [number v]) = [48]> then\n    else\n        if <(costume [number v]) = [24]> then\n            set size to (100) %\n            repeat (11)\n                go to [front v] layer\n                next costume\n            end\n            broadcast (del v)\n            wait (.1) seconds\n            repeat (11)\n                go to [front v] layer\n                next costume\n            end\n            delete this clone\n        else\n            repeat until <(transition) = [1]>\n                go to [front v] layer\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [transition v] to [0]\ngo to x: (0) y: (0)\nswitch costume to (back v)\ncreate clone of (_myself_ v)\nhide\ngo to x: (0) y: (180)\nswitch costume to (pug v)\ncreate clone of (_myself_ v)\ngo to x: (0) y: (-180)\nswitch costume to (thepugmen v)\ncreate clone of (_myself_ v)\nbroadcast (Intro v)\nwait (1) seconds\ngo to x: (44) y: (0)\nset size to (120) %\nswitch costume to (costume1 v)\nshow\ngo to [front v] layer\nrepeat (20)\n    next costume\nend\nbroadcast (bright v)\nwait (1.7) seconds\nbroadcast (expand v)\nwait (1) seconds\ngo to x: (0) y: (0)\nswitch costume to (costume22 v)\ncreate clone of (_myself_ v)\ngo to x: (44) y: (0)\nswitch costume to (costume21 v)\n\nwhen I receive [del v]\nif <(costume [number v]) = [35]> then\n\nwhen I receive [bright v]\nset [brightness v] effect to (100)\nwait (.5) seconds\nrepeat (50)\n    change [brightness v] effect by (-2)\nend\n\nwhen I receive [expand v]\nchange size by (100)\n\nwhen flag clicked\nset volume to (30) %\nplay sound [Intro v] until done\nplay sound [Fade v] until done\nbroadcast (Begin  v)\n\n@thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\n@music\n\nwhen I receive [begin  v]\nforever\n    play sound (pick random (1) to (7)) until done\nend\n\n