Storyland, a fixed mobile platformer

Instructions: New project! https://scratch.mit.edu/projects/491912039/\n\n<^>/wasd/mobile to move\nR to restart/retry\n\nThis is a fixed mobile game, which means that the player moves towards the mouse/finger. Give it a try!\n\nI hope you enjoy, I hope I win XD\n\nI thought for this game I would basically try to overwhelm you with beautiful smooth effects...\n\n\nI have also fixed the "invisible spike" and "sticky wall" bugs! YAYAY!\n\nIf you like/liked it consider giving a ❤️,⭐, and maybe even follow if you haven't already.\n(all levels ARE possible)\n\nand now for the credits...\n\nAll code by me\nAll animation by me\nAll ideas by me\n\nI was going to make my own music out of Scratch Blocks, but it was too laggy. :C\n\n#games #platformer #A_Wire #well_made #quality #fun\n#storyland #good #smooth #flow #effect #effects #love #fav #follow #art #music #animation #engine #remix #words #play #trending #popular #easy #hard #awesome

@Stage\n\n@Death Effect Variablepieces\n\ndefine break\nswitch costume to (back v)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nset size to (80) %\nset [ghost v] effect to (50)\nshow\ngo to (player variable v)\npoint in direction (90)\nrepeat (50)\n    turn right (((XV) * ([abs v] of (YV) )) / (5)) degrees\n    change y by (YV)\nend\n\nwhen I receive [dead v]\nbreak\n\nwhen I start as a clone\nrepeat (8)\n    change [yv v] by (2)\n    change [ghost v] effect by (1)\nend\nrepeat until <(y position) < [-181]>\n    change [ghost v] effect by (1)\n    change [yv v] by (-1)\nend\ndelete this clone\n\n@player variable\n\nwhen flag clicked\nset rotation style [left-right v]\nhide\n\nwhen I receive [start v]\ngo to x: (-200) y: (-100)\npoint in direction (90)\nset size to (80) %\nswitch costume to (costume1 v)\nshow\nset [level v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    if <(Next level?) = [safe]> then\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            change [xv v] by (1)\n            point in direction (90)\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 [xv v] by (-1)\n            point in direction (-90)\n        end\n        set [xv v] to ((Xv) * (0.9))\n        change x by (Xv)\n        if <touching (level variable v)?> then\n            change y by (1)\n            if <touching (level variable v)?> then\n                change y by (1)\n                if <touching (level variable v)?> then\n                    change y by (1)\n                    if <touching (level variable v)?> then\n                        change y by (1)\n                        if <touching (level variable v)?> then\n                            change y by (1)\n                            if <touching (level variable v)?> then\n                                change x by ((Xv) * (-1))\n                                if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                                    if <(Xv) > [0]> then\n                                        set [xv v] to [-5]\n                                    else\n                                        set [xv v] to [5]\n                                    end\n                                    set [yv v] to [12]\n                                else\n                                    set [xv v] to [0]\n                                end\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 (level variable v)?> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\n        end\n        change y by (-1)\n        if <touching (level variable v)?> then\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                set [yv v] to [12]\n            end\n        end\n        if <touching (trampoline variable v)?> then\n            set [yv v] to [20]\n            broadcast (Trampoline v)\n        end\n        change y by (1)\n        if <key (r v) pressed?> then\n            Dead\n        end\n        if <<<(y position) < [-177]> or <touching (death variable v)?>> or <touching (saws variable v)?>> then\n            start sound [Death v]\n            Dead\n        end\n        if <(x position) > [230]> then\n            broadcast (Next level! v)\n            reset\n        end\n    end\nend\n\ndefine reset\ngo to x: (-260) y: (-85)\n\nwhen flag clicked\nbroadcast (start v)\n\nwhen flag clicked\ngo to [front v] layer\nforever\n    play sound [Coffin Dance Official Music v] until done\nend\n\nwhen flag clicked\nforever\n    wait (0.05) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nwait (0.5) seconds\ndelete this clone\n\nwhen I start as a clone\nrepeat (50)\n    wait (0) seconds\n    change [ghost v] effect by (15)\n    change size by (-2)\nend\n\ndefine Dead\nbroadcast (dead v) and wait\n\nwhen flag clicked\nforever\n    if <<<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > [10]>>> or <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < [-10]>>>> or <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n        switch costume to (player moving v)\n    else\n        switch costume to (player not moving v)\n    end\nend\n\nwhen I receive [dead v]\nwait (0.01) seconds\ngo to x: (-260) y: (-85)\n\n@Level Variable\n\nwhen flag clicked\nforever\n    switch costume to (level)\nend\n\n@Next level effect\n\nwhen I receive [next level! v]\ngo to [front v] layer\nshow\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\nset [next level? v] to [not safe]\nwait (0.5) seconds\nchange [level v] by (1)\nset [next level? v] to [safe]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\n\nwhen flag clicked\nset [next level? v] to [safe]\nhide\nset [ghost v] effect to (100)\n\n@Thumbnail Slide Effect\n\nwhen [timer v] > (Checktimer)\ngo to x: (-300) y: (0)\nrepeat (30)\n    change [ghost v] effect by (0)\n    change x by (((0) - (x position)) / (3))\nend\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\n    set [checktimer v] to (timer)\nend\n\n@Backdrop\n\nwhen flag clicked\nswitch costume to (costume1 v)\nforever\n    set size to (120) %\n    go to [back v] layer\n    set [ghost v] effect to (25)\nend\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    point in direction ((([cos v] of ((days since 2000) * (5000000)) ) * (3)) + (90))\nend\n\n@Death Variable\n\nwhen flag clicked\nforever\n    switch costume to (level)\nend\n\n@Sun Variable\n\nwhen flag clicked\ngo to [back v] layer\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\nwait (2) seconds\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\nwait (2) seconds\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\n\nwhen I start as a clone\ngo to [back v] layer\nset [ghost v] effect to (50)\nforever\n    repeat (100)\n        turn right (pick random (1) to (3)) degrees\n        switch costume to (costume3 v)\n        change size by (1)\n        switch costume to (costume2 v)\n    end\n    repeat (100)\n        turn right (pick random (1) to (2)) degrees\n        switch costume to (costume3 v)\n        change size by (-1)\n        switch costume to (costume2 v)\n    end\nend\n\n@Trampoline Variable\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level! v]\nnext costume\n\n@Saws Variable\n\nwhen flag clicked\nforever\n    turn right (15) degrees\n    set [brightness v] effect to (-30)\nend\n\nwhen flag clicked\ngo to x: (0) y: (130)\nforever\n    glide (0.8) secs to x: (0) y: (-130)\n    glide (0.8) secs to x: (0) y: (130)\nend\n\nwhen flag clicked\nforever\n    if <(level) = [14]> then\n        show\n    else\n        hide\n    end\nend\n\n