Classic Platformer! 

Instructions: IMPORTANT: 2000 Views!\n(part 2)\nhttps://scratch.mit.edu/projects/701880761/\nALSO, READ THE DESCRIPTION\n\nUse arrow keys to move. Don't touch red.\nHave FUN!!!!\n(storyline)\na blue dot (you) have got lost in a forest. Your job is to escape the forest as you encounter deadly traps to stop you. You enter a cave to help you find your way. will you succeed??\n(part 2)\nhttps://scratch.mit.edu/projects/701880761/\n\nThere are invisible walls on levels 7,8 and nine. So watch out. Sorry, but you have to press the green flag if you get stuck.\nAt 400 views, 20 loves and 15 stars will make a sequel.\ndone with the sequel (part 2)\n\n\nUpdate: 5/11/22, more than ten views!!!\nUpdate: 5/18/22, more than 60 views!!!\nUpdate: 5/19/22, more than 80 views!!!!\nUpdate: 5/19/22, more than 100 views!!!\nUpdate: 6/3/22, more than 285 views!!!!\nUpdate: 6/11/22, 999 Views!!!!\nPlease do not just remix for no reason (add levels or change the script). Thank you! 

@Stage\n\n@player\n\nwhen flag clicked\nset [resistance v] to [0.8]\nset [gravity v] to [-1]\nset [jump forse v] to [12]\nset [acceleration v] to [1.8]\nreset and begin level\n\ndefine move-in steps (steps)\nchange [falling v] by (1)\nrepeat (steps)\n    set [last value v] to (x position)\n    change x by ((speed x) / (steps))\n    if <touching (level v)?> then\n        set x to (last value)\n        set [speed x v] to [0]\n    end\n    set [last value v] to (y position)\n    change y by ((speed y) / (steps))\n    if <touching (level v)?> then\n        set y to (last value)\n        if <(speed y) < [0]> then\n            set [falling v] to [0]\n        end\n        set [speed y v] to [0]\n    end\nend\n\nwhen I receive [tick-player v]\ncontrols- up and down\ncontrols- left and right\nmove-in steps (([abs v] of (speed x) ) + ([abs v] of (speed y) ))\n\ndefine controls- up and down\nif <key (up arrow v) pressed?> then\n    if <(falling) < [3]> then\n        set [speed y v] to (jump forse)\n    end\nend\nchange [speed y v] by (gravity)\n\ndefine controls- left and right\nif <key (left arrow v) pressed?> then\n    change [speed x v] by ((0) - (acceleration))\nend\nif <key (right arrow v) pressed?> then\n    change [speed x v] by (acceleration)\nend\nset [speed x v] to ((speed x) * (Resistance))\n\ndefine reset and begin level\nset [scene # v] to [1]\nset [speed y v] to [0]\nset [speed x v] to [0]\nset [falling v] to [99]\ngo to x: (-40) y: (-213)\nbroadcast (Change Scene v)\nbroadcast (game loop v)\n\nwhen I receive [game loop v]\nforever\n    broadcast (tick-player v)\n    broadcast (Tick - Last v)\nend\n\nwhen I receive [tick - last v]\nif <(x position) > [300]> then\n    Begin Scene # ((Scene #) + (1)) go to x: [-300]\nend\nif <(x position) < [-235]> then\n    Begin Scene # ((Scene #) + (-1)) go to x: [300]\nend\n\ndefine Begin Scene # (scene #) go to x: (x)\nset [scene # v] to (scene #)\nset x to (x)\nbroadcast (Change Scene v)\nstop [other scripts in sprite v]\nwait (0) seconds\nFix collision in direction [0]\nbroadcast (game loop v)\n\ndefine Fix collision in direction (dir)\nset [temp v] to (direction)\npoint in direction (dir)\nrepeat (69)\n    check touching solid\n    if <(touching) < [50]> then\n        point in direction (temp)\n        stop [this script v]\n    end\n    move (Distance) steps\n    turn right (180) degrees\n    set [distance v] to [1]\nend\n\nset [distance v] to [1]\n\ndefine check touching solid\n\nwhen I receive [death v]\nforever\n    if <<touching color (#ff0000)?> or <<touching color (#ff6a00)?> or <<touching color (#ffaf00)?> or <touching color (#909090)?>>>> then\n        go to x: (-200) y: (70)\n    end\nend\n\nwhen [any v] key pressed\nforever\n    broadcast (death v)\nend\n\ngo to x: (201) y: (-14)\n\n@level\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [back v] layer\n\nwhen I receive [change scene v]\nswitch costume to (join [Scene] (Scene #))\n\n@thumbnail\n\nwhen flag clicked\nshow\nforever\n    set [ghost v] effect to (100)\n    go to [front v] layer\nend\n\n@danger\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [back v] layer\n\nwhen I receive [change scene v]\nswitch costume to (blank v)\nswitch costume to (join [Scene] (Scene #))\nif <(Scene #) = [4]> then\n    forever\n        set y to ((5) * ([sin v] of ((timer) * (180)) ))\n    end\nend\n\nwhen I receive [change scene v]\nswitch costume to (blank v)\nswitch costume to (join [Scene] (Scene #))\n\nwhen I receive [change scene v]\nswitch costume to (blank v)\nswitch costume to (join [Scene] (Scene #))\nif <(Scene #) = [11]> then\n    forever\n        set y to ((5) * ([sin v] of ((timer) * (180)) ))\n    end\nend\n\nwhen I receive [change scene v]\nswitch costume to (blank v)\nswitch costume to (join [Scene] (Scene #))\n\nwhen I receive [change scene v]\nswitch costume to (blank v)\nswitch costume to (join [Scene] (Scene #))\nif <(Scene #) = [19]> then\n    forever\n        set y to ((5) * ([sin v] of ((timer) * (180)) ))\n    end\nend\n\n@Heart\n\nwhen flag clicked\nhide\nforever\n    wait (pick random (15) to (20)) seconds\n    show\n    go to x: (-43) y: (20)\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (9)\n        change y by (3)\n    end\n    repeat (9)\n        change y by (-1)\n    end\n    wait (2) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\n