Grass Land [ A Mobile Friendly Platformer ]

Instructions:    ★★★★★★★★★ Grass Land ★★★★★★★★★★★\n\n                              ★How to play★\n- Wasd or Arrow keys to move !\n- Mobile Friendly\n- Don't touch Spikes, Saw, Lava and ...\n\n                                    ★Features★\n 300+ code blocks\n 8+ sprites\n\n                                      ★Goals★\n- Up to #10 Trending\n- 15 000+ views\n-  3000 + Loves And Favs\n\n        ★★★★★★★★★★Credits★★★★★★★★★★★★\n★@luku8 for the sun\n★The other codes by me !\n                                        \n                              ❤️ + ⭐ = Thanks

@Stage\n\nwhen flag clicked\nset [ghost v] effect to (100)\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [start v]\nset [ghost v] effect to (0)\n\n@Picture\n\nwhen flag clicked\nset [ghost v] effect to (0)\nshow\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nbroadcast (Start v)\n\nwhen I receive [start v]\nforever\n    play sound [Music v] until done\nend\n\n@Player\n\nwhen flag clicked\nhide\nhide variable [x v]\nhide variable [y v]\nhide variable [jump v]\nswitch costume to (normal v)\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nswitch costume to (clone v)\nrepeat (10)\n    change [ghost v] effect by (10)\n    change size by (-5)\nend\ndelete this clone\n\nwhen I receive [start v]\nshow\nset size to (90) %\ngo to x: (-196) y: (0)\npoint in direction (90)\nset [x v] to [0]\nset [y v] to [0]\nforever\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [x v] by (1.5)\n        switch costume to (right v)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [x v] by (-1.5)\n        switch costume to (left v)\n    end\n    if <<<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> and <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> then\n        switch costume to (up right v)\n    end\n    if <<<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> and <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> then\n        switch costume to (up left v)\n    end\n    if <not <<key (right arrow v) pressed?> or <<key (left arrow v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<key (a v) pressed?> or <<key (d v) pressed?> or <<<mouse down?> and <(mouse x) > (x position)>> or <<mouse down?> and <(mouse x) < (x position)>>>>>>>>>> then\n        switch costume to (normal v)\n    end\n    change x by (X)\n    if <touching (ground v)?> then\n        change x by ((X) * (-1))\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            if <(X) > [0]> then\n                set [x v] to [-15]\n                set [y v] to [10]\n            else\n                set [x v] to [15]\n                set [y v] to [10]\n            end\n        else\n            set [x v] to [0]\n        end\n    else\n        set [x v] to ((X) * (0.8))\n    end\n    change y by (Y)\n    if <touching (ground v)?> then\n        change y by ((Y) * (-1))\n        set [y v] to [0]\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            switch costume to (up v)\n            if <(Jump) = [yes]> then\n                set [y v] to [12]\n                set [jump v] to [no]\n            end\n        end\n    else\n        change [y v] by (-1)\n        set [jump v] to [yes]\n    end\n    if <(x position) > [235]> then\n        set size to (100) %\n        go to x: (-196) y: (0)\n        broadcast (Next Level v)\n    end\n    if <<<touching (spikes v)?> or <touching (saw v)?>> or <touching (lava v)?>> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        set size to (100) %\n        go to x: (-196) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <touching color (#fff700)?> then\n        set [y v] to [19]\n    end\nend\n\n@Ground\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\n@Sun\n\nwhen I receive [start v]\nshow\ngo to [back v] layer\nshow\ngo to x: (36) y: (28)\nset size to (100) %\nset [sun size v] to [100]\nforever\n    change size by ([cos v] of (Sun Size) )\n    change [sun size v] by (5)\nend\n\nwhen flag clicked\nhide variable [sun size v]\nhide\n\n@Cloud\n\nwhen flag clicked\nhide variable [side v]\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\nwhen flag clicked\nhide\n\nwhen I start as a clone\nset size to (pick random (55) to (77)) %\nshow\ngo to [back v] layer\nset [ghost v] effect to (15)\nif <(side) = [1]> then\n    go to x: (300) y: (pick random (150) to (100))\n    repeat until <(x position) < [-200]>\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) < [200]>\n        change x by (1)\n    end\n    delete this clone\nend\n\n@Spikes\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\n@Saw\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\nhide variable [line v]\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nforever\n    change [line v] by (0.9)\n    go to [back v] layer\nend\n\nwhen flag clicked\nforever\n    point in direction ((90) + (([sin v] of ((line) * (2)) ) * (300)))\n    if <(costume [number v]) = [3]> then\n        go to x: (191) y: (-81)\n    end\n    if <(costume [number v]) = [5]> then\n        go to x: (74) y: (-84)\n    end\n    if <(costume [number v]) = [8]> then\n        go to x: (34) y: (-82)\n    end\n    if <(costume [number v]) = [10]> then\n        go to x: (33) y: (-82)\n    end\nend\n\n@Lava\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\ngo to [front v] layer\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nforever\n    glide (1) secs to x: (-37) y: (-25)\n    glide (1) secs to x: (-37) y: (-31)\nend\n\n@Boing\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\ngo to [front v] layer\n\nwhen I receive [start v]\nshow\n\nwhen I receive [next level v]\nnext costume\n\n