Platformer pack

Instructions: This project includes all the assets you'll need to make a platformer! Contents include a tileset with many different blocks, including ground blocks for 4 different terrains and some sample levels (these samples aren't meant to be difficult, the are just to showcase the features of the engine). The platformer engine includes a ladder function, different amounts of friction depending on the terrain, and is easy to customize! If you have any questions on how to customize it for yourself, feel free to let me know!

@Stage\n\nwhen flag clicked\nforever\n    play sound [Platform v] until done\nend\n\n@Sprite1\n\nwhen flag clicked\nforever\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > ((x position) - (-20))>>>> then\n        if <(costume [number v]) = [6]> then\n            switch costume to (screenshot 2019-11-27 at 5 v)\n        end\n        repeat until <(costume [number v]) = [1]>\n            switch costume to ((costume [number v]) - (1))\n        end\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <((x position) - (20)) > (mouse x)>>>> then\n        if <(costume [number v]) = [6]> then\n            switch costume to (screenshot 2019-11-27 at 11 v)\n        end\n        repeat until <(costume [number v]) = [5]>\n            switch costume to ((costume [number v]) - (-1))\n        end\n    end\nend\n\nwhen flag clicked\nReset\nforever\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > ((x position) - (-50))>>>> then\n        change [xv v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <((x position) - (50)) > (mouse x)>>>> then\n        change [xv v] by (-1)\n    end\n    change x by (Xv)\n    change y by (-1)\n    if <touching color (#97e7fb)?> then\n        set [xv v] to ((Xv) * (0.95))\n    else\n        if <touching color (#fdf7a2)?> then\n            set [xv v] to ((Xv) * (0.85))\n        else\n            set [xv v] to ((Xv) * (0.9))\n        end\n    end\n    change y by (1)\n    if <touching (ground v)?> then\n        change y by (1)\n        if <touching (ground v)?> then\n            change y by (1)\n            if <touching (ground v)?> then\n                change y by (1)\n                if <touching (ground v)?> then\n                    change y by (1)\n                    if <touching (ground v)?> then\n                        change y by (1)\n                        if <touching (ground v)?> then\n                            change x by ((Xv) * (-2))\n                            change y by (-5)\n                            set [xv v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-1)\n    change y by (Yv)\n    if <touching (ground v)?> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>>> then\n        if <touching (ground v)?> then\n            if <not <touching color (#7e5000)?>> then\n                start sound [Jump v]\n                set [yv v] to [12]\n            end\n        end\n    end\n    if <touching color (#7e5000)?> then\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>>> then\n            switch costume to (screenshot 2019-11-27 at 6 v)\n            set [yv v] to [0]\n            change y by (5)\n        end\n    end\n    if <<touching color (#ff0000)?> or <touching color (#35b8d3)?>> then\n        start sound [hit v]\n        Reset\n    end\nend\n\ndefine Reset\nset [yv v] to [0]\nswitch costume to (screenshot 2019-11-27 at 11 v)\nset [xv v] to [0]\ngo to x: (-200) y: (-50)\n\nwhen I receive [reset v]\nReset\n\n@Tileset\n\n@ground\n\nwhen flag clicked\nswitch costume to (1 v)\nforever\n    wait until <([x position v] of [sprite1 v]) > [225]>\n    next costume\n    broadcast (Reset v)\nend\n\n@decor\n\nwhen flag clicked\nforever\n    switch costume to ([costume # v] of [ground v])\nend\n\n