Adventure-Mobile Friendly Platformer

Instructions: New Game!\nhttps://scratch.mit.edu/projects/527784204\nSPAM THE GREEN FLAG FOR NO LAG!\nM to mute and U to Unmute.\n\nWelcome to Grasslands A Platformer!\nYou can use Mobile, WASD or arrow keys to move! For mobile players, touch the place where you want to go!\nThere is not much for me to explain because most of the instructions will be explained during your journey!\nHave fun!\n\nThis is probably my best project so far! So... enjoy! And don't forget to love and fav! And follow me for more!\n\n100 views in 5 days! Thanks guys!\nCREDITS\n\nSong:\nTheFatRat & Anjulie - Close To The Sun\n\nThanks to @Ziyu3 for the awesome platformer engine and most of the code! So thanks @Ziyu3!\nI also did alot!\nCooltext.com\n\n@dadadaden for inspiration!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTags:\n#Platformer #adventure #mobile #mobile   friendly #mobilefriendly #journey #Dadadanden #fun #all #games #Adventure #Ziyu3 #dadadanden

@Stage\n\nwhen flag clicked\nswitch backdrop to (sky v)\nset volume to (50) %\nforever\n    play sound [TheFatRat & Anjulie - Close To The Sun v] until done\nend\n\nwhen I receive [next level v]\nif <(Level) = [4]> then\n    switch backdrop to (half cave v)\nend\nif <(Level) = [5]> then\n    switch backdrop to (cave v)\nend\nif <(Level) = [9]> then\n    switch backdrop to (other half cave v)\nend\nif <(Level) = [10]> then\n    switch backdrop to (sky v)\nend\n\nforever\n    set volume to (0) %\nend\n\nwhen [m v] key pressed\nset volume to (50) %\n\nwhen [u v] key pressed\nset volume to (0) %\n\n@blank2\n\n@Player\n\nwhen flag clicked\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [level v] to [1]\nwait (1) seconds\ngo to x: (-220) y: (-50)\nforever\n    Run physics [0.9] [0.9] [-1] [15]\n    if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n        if <not <<touching color (#4c86ff)?> or <touching color (#437de0)?>>> then\n            switch costume to (costume2 v)\n        else\n            switch costume to (costume1 v)\n        end\n    else\n        switch costume to (costume1 v)\n    end\nend\n\ndefine Run physics (speed) (friction) (gravity) (jump height)\nchange [yvel v] by (gravity)\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xvel v] by (speed)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n    change [xvel v] by ((speed) * (-1))\nend\nset [xvel v] to ((Xvel) * (friction))\nchange x by (Xvel)\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (-4)\n    change x by ((Xvel) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        set [yvel v] to ((jump height) - (3.5))\n        if <[0] < (Xvel)> then\n            set [xvel v] to [-6]\n        else\n            set [xvel v] to [6]\n        end\n    else\n        set [xvel v] to [0]\n    end\nend\nchange y by (Yvel)\nif <touching (ground v)?> then\n    change y by ((Yvel) * (-1))\n    set [yvel v] to [0]\nend\nchange y by (-1)\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <touching (ground v)?> then\n        set [yvel v] to (jump height)\n    end\nend\nchange y by (1)\n\nwhen I receive [ded v]\nstart sound [Roblox Death Sound  OOF Sound Effect v]\ngo to x: (-220) y: (-50)\nset [ghost v] effect to (0)\n\nwhen I start as a clone\nrepeat (10)\n    change size by (-5)\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\nwhen I receive [next level v]\ngo to x: (-220) y: (-50)\n\nwhen flag clicked\nrepeat until <(Level) = [22]>\n    if <[220] < (x position)> then\n        broadcast (Next level v) and wait\n        wait until <not <[220] < (x position)>>\n    end\n    if <<<(y position) < [-170]> or <touching (spikes v)?>> or <<touching (lava v)?> or <touching (saw v)?>>> then\n        broadcast (Ded v) and wait\n    end\n    if <touching (bouncy v)?> then\n        set [yvel v] to [20]\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching color (#54ceff)?> or <touching color (#63d2ff)?>> then\n        if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n            change [xvel v] by (-1.3)\n        end\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            change [xvel v] by (1.3)\n        end\n        if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n            change [yvel v] by (-1.3)\n        end\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            change [yvel v] by (1.3)\n        end\n        set [xvel v] to ((Xvel) * (0.81))\n        set [yvel v] to ((Yvel) * (0.81))\n        change [yvel v] by (((Yvel) / (14.9)) + (0.1))\n    end\n    set size to (125) %\nend\n\nwhen I receive [respawn v]\ngo to x: (-220) y: (-50)\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    go [backward v] (1) layers\nend\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nforever\n    if <[220] < (x position)> then\n        play sound [Ding Sound Effect v] until done\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (bouncy v)?> then\n        play sound [Mario_Jump_-_Gaming_Sound_Effect v] until done\n    end\nend\n\nwhen flag clicked\nforever\n    if <<<(y position) < [-170]> or <touching (spikes v)?>> or <<touching (lava v)?> or <touching (saw v)?>>> then\n        play sound [Roblox Death Sound  OOF Sound Effect v] until done\n    end\nend\n\nwhen flag clicked\nforever\n    if <[2] = (costume [number v])> then\n        set [xvel v] to [0]\n        wait until <not <[2] = (costume [number v])>>\n    end\nend\n\nwhen flag clicked\nif <<(username) = [dadadanden]> or <(username) = [dadadanden_alt]>> then\n    wait (1) seconds\n    ask [thumbnail?] and wait\n    if <(answer) = [y]> then\n        broadcast (thumbnail v)\n    end\nend\n\n@Ground\n\nwhen flag clicked\nswitch costume to (costume1 v)\nforever\n    go to [front v] layer\n    go [backward v] (5) layers\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Spikes\n\nwhen flag clicked\nswitch costume to (costume1 v)\nforever\n    go to [front v] layer\n    go [backward v] (10) layers\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Lava\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nforever\n    go to [front v] layer\n    go [backward v] (9) layers\n    set [level v] to (costume [number v])\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo [backward v] (9) layers\nforever\n    repeat (20)\n        change y by (0.5)\n    end\n    repeat (20)\n        change y by (-0.5)\n    end\nend\n\n@Bouncy\n\nwhen I start as a clone\ngo to [front v] layer\ngo [backward v] (8) layers\nswitch costume to (costume1 v)\nshow\nforever\n    if <touching (player v)?> then\n        switch costume to (costume1 v)\n        repeat until <(costume [number v]) = [5]>\n            next costume\n        end\n        repeat until <(costume [number v]) = [1]>\n            switch costume to ((costume [number v]) - (1))\n        end\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    go to [front v] layer\n    go [backward v] (8) layers\nend\n\ndefine Clone at x: (x) y: (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\ngo to [front v] layer\ngo [backward v] (8) layers\nhide\nif <(Level) = [4]> then\n    Clone at x: [-120] y: [-115]\nelse\n    hide\n    delete this clone\nend\n\nwhen I receive [next level v]\nif <(Level) = [3]> then\n    Clone at x: [-120] y: [-115]\nelse\n    hide\n    delete this clone\nend\nif <(Level) = [6]> then\n    Clone at x: [-120] y: [-115]\n    Clone at x: [0] y: [-115]\n    Clone at x: [120] y: [-115]\nelse\n    hide\n    delete this clone\nend\n\n@Water\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nforever\n    go to [front v] layer\n    go [backward v] (11) layers\n    set [level v] to (costume [number v])\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo [backward v] (9) layers\nforever\n    repeat (20)\n        change y by (0.5)\n    end\n    repeat (20)\n        change y by (-0.5)\n    end\nend\n\n@Saw\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (9) layers\nforever\n    set size to (70) %\n    hide\n    go to [front v] layer\n    go [backward v] (9) layers\n    go to x: (0) y: (0)\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [next level v]\nif <(Level) = [1]> then\n    Clone at x: [150] y: [-125]\nelse\n    if <(Level) = [3]> then\n        Clone at x: [30] y: [125]\n        Clone at x: [-65] y: [0]\n    else\n        hide\n        delete this clone\n    end\nend\n\nwhen flag clicked\ngo to [front v] layer\ngo [backward v] (8) layers\nhide\nif <(Level) = [2]> then\n    Clone at x: [150] y: [-125]\nelse\n    if <(Level) = [3]> then\n        Clone at x: [30] y: [125]\n    else\n        hide\n        delete this clone\n    end\nend\n\ndefine Clone at x: (x) y: (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to [front v] layer\ngo [backward v] (8) layers\nswitch costume to (costume1 v)\nshow\nforever\n    turn right (10) degrees\nend\n\nwhen I receive [next level v]\ndelete this clone\n\nwait until <(Level) = [50]>\n\ndelete this clone\n\n@blank3\n\n@Text\n\nwhen flag clicked\nhide variable [☁ world record v]\nhide variable [your journeys v]\nset [your journeys v] to [0]\nswitch costume to (costume1 v)\nforever\n    go to [front v] layer\n    go [backward v] (2) layers\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [next level v]\nif <(Level) = [10]> then\n    show variable [☁ world record v]\n    show variable [your journeys v]\n    change [your journeys v] by (1)\n    if <(your journeys) > (☁ World record)> then\n        set [☁ world record v] to (your journeys)\n    end\nelse\n    hide variable [☁ world record v]\n    hide variable [your journeys v]\nend\n\n@Tumbnail\n\nwhen flag clicked\ngo to [front v] layer\nswitch costume to (costume1 v)\nset [ghost v] effect to (0)\nshow\nwait (1) seconds\nrepeat (20)\n    change [ghost v] effect by (5)\nend\n\nwhen I receive [thumbnail v]\nswitch costume to (costume1 v)\ngo to [front v] layer\nset [ghost v] effect to (0)\nshow\nforever\n    go to [front v] layer\nend\n\n@blank\n\n