The Shadows: A Scrolling Platformer

Instructions: So, welcome to one of my best games! Press the arrow keys to play. \n=============StoryLine=============\nYou are a shadow. You can camouflage in the shadows. If you touch bright colours like red, you die and restart the levels. Please do love and fave and remix. Music from youtube. \n==========================\nIt took me 9-10 hours to make so I hope you like it! Please write in the comments how it is... DO NOT JUDGE THIS PROJECT BY THE MUSIC OR ELSE GET YOUR COMMENT DELETED! \n*I, crying* This is underrated!!!

@Stage\n\nwhen flag clicked\nswitch backdrop to (intro v)\nwait (4.5) seconds\nforever\n    play sound [the piano moosic v] until done\nend\n\nwhen flag clicked\nstart sound [Martin Garrix - Animals \(Official Video\)2 v]\nwait (4.49) seconds\nstop all sounds\nswitch backdrop to (backdrop1 v)\n\n@thumbanil\n\nwhen flag clicked\nhide\n\nwhen [6 v] key pressed\nforever\n    go to [front v] layer\n    show\nend\n\n@bounce\n\nwhen I receive [start v]\n\nwhen I receive [tick v]\nforever\n    go to (platforms v)\n    if <(level) = [0]> then\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [start v]\nwait (2) seconds\nshow\n\nwhen I receive [start v]\nwait (1) seconds\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nswitch costume to (0 v)\nhide\n\nwhen I receive [next level v]\nwait (1) seconds\nnext costume\n\nchange [level v] by (1)\n\nwhen flag clicked\nswitch costume to (0 v)\nset size to (380) %\nwait (1.5) seconds\nswitch costume to (1 v)\n\nset size to (380) %\n\n@decor2\n\nwhen I receive [start v]\n\nwhen I receive [tick v]\nforever\n    go to (platforms v)\n    if <(level) = [0]> then\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [start v]\nwait (2) seconds\nshow\n\nwhen I receive [start v]\nwait (1) seconds\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nswitch costume to (0 v)\nhide\n\nwhen I receive [next level v]\nwait (1) seconds\nnext costume\n\nwhen flag clicked\nset [ghost v] effect to (0)\nswitch costume to (0 v)\nset size to (380) %\nwait (2.5) seconds\nswitch costume to (1 v)\nchange [level v] by (1)\n\nset size to (380) %\n\n@shadows\n\nwhen I receive [start v]\n\nwhen I receive [tick v]\nforever\n    go to (platforms v)\n    if <(level) = [0]> then\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [start v]\nwait (2) seconds\nshow\n\nwhen I receive [start v]\nwait (1) seconds\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nswitch costume to (0 v)\nhide\n\nwhen I receive [next level v]\nwait (1) seconds\nnext costume\n\nwhen flag clicked\nset [ghost v] effect to (0)\nswitch costume to (0 v)\nset size to (380) %\nwait (2.5) seconds\nswitch costume to (1 v)\nchange [level v] by (1)\n\nset size to (380) %\n\n@danger\n\nwhen I receive [start v]\n\nwhen I receive [tick v]\nforever\n    go to (platforms v)\n    if <(level) = [0]> then\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [start v]\nwait (2) seconds\nshow\nforever\n    if <touching (player v)?> then\n        broadcast (player death v)\n        wait until <not <touching (player v)?>>\n        wait (1) seconds\n    end\nend\n\nwhen I receive [start v]\nwait (1) seconds\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nswitch costume to (0 v)\nhide\n\nwhen I receive [next level v]\nwait (1) seconds\nnext costume\n\nchange [level v] by (1)\n\nwhen flag clicked\nswitch costume to (0 v)\nset size to (380) %\nwait (1.5) seconds\nswitch costume to (1 v)\n\nset size to (380) %\n\n@Sprite5\n\nwhen flag clicked\ngo to [front v] layer\n\nwhen flag clicked\ngo to x: (0) y: (-400)\nhide\n\nwhen I receive [player death v]\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (-400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (-20)\nend\nhide\n\nchange x by (10)\n\nwhen I receive [next level v]\nstart sound [Connect v]\n\nset y to (-169)\n\npoint in direction (0)\n\nwhen I receive [start v]\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (-400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (-20)\nend\nhide\n\nwhen I receive [next level v]\nchange [level v] by (1)\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (-400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (-20)\nend\nhide\n\n@Sprite6\n\nwhen flag clicked\ngo to [front v] layer\n\nwhen flag clicked\ngo to x: (-400) y: (0)\nhide\n\nglide (0.5) secs to x: (0) y: (400)\n\nwhen I receive [next level v]\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (20)\nend\nhide\n\nwhen I receive [start v]\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (20)\nend\nhide\n\nwhen I receive [player death v]\nstop [other scripts in sprite v]\nclear graphic effects\nshow\ngo to x: (0) y: (400)\npoint in direction (0)\nrepeat (30)\n    change y by ((((0) - (y position)) * (0.2)) + ((ivel) * (0.2)))\nend\nrepeat (30)\n    turn right (((((0) - (direction)) * (0.2)) + ((ivel) * (0.2))) + (18)) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (5)\n    change x by (20)\nend\nhide\n\n@flag\n\nwhen I receive [start v]\n\nwhen I receive [tick v]\nforever\n    go to (platforms v)\n    if <(level) = [0]> then\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [start v]\nwait (2) seconds\nshow\nforever\n    if <touching (player v)?> then\n        broadcast (next level v)\n        wait until <not <touching (player v)?>>\n        wait (1) seconds\n        next costume\n        show\n    end\nend\n\nwhen I receive [start v]\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nswitch costume to (0 v)\nhide\n\nwait (1) seconds\n\nwhen I receive [next level v]\n\nchange [level v] by (1)\n\nwhen flag clicked\nswitch costume to (0 v)\nset size to (380) %\nswitch costume to (1 v)\n\nshow\n\nset size to (380) %\n\n@backround\n\nwhen flag clicked\ngo to x: (0) y: (-5)\nset [ghost v] effect to (60)\nswitch costume to (costume1 v)\ngo to [back v] layer\nhide\n\nwhen I receive [tick v]\nwait (0.6) seconds\nshow\nforever\n    if <(stop sleeping) = [1]> then\n        if <(colllide) = [0]> then\n            change x by ((para vel) * (0.1))\n        end\n        if <key (right arrow v) pressed?> then\n            change [para vel v] by (-1)\n            if <(para vel) < [-5]> then\n                set [para vel v] to [-5]\n            end\n        end\n        if <key (left arrow v) pressed?> then\n            change [para vel v] by (1)\n            if <[5] < (para vel)> then\n                set [para vel v] to [5]\n            end\n        end\n        if <not <key (any v) pressed?>> then\n            set [para vel v] to ((para vel) * (0.9))\n        end\n    end\nend\n\nwhen I receive [next level v]\nwait (1) seconds\n\nwhen I receive [player death v]\nwait (1) seconds\n\nwhen I start as a clone\nset [ghost v] effect to (60)\ngo to x: (4000) y: (-5)\nforever\n    if <(colllide) = [0]> then\n        change x by ((para vel) * (0.1))\n    end\nend\n\nwhen I receive [start v]\nwait (0.6) seconds\nforever\n    if <(x position) < [-20]> then\n        create clone of (_myself_ v)\n        stop [this script v]\n    end\nend\n\nwhen I start as a clone\nwait (0.6) seconds\nforever\n    if <(x position) < [-30]> then\n        create clone of (_myself_ v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [start v]\nwait (0.6) seconds\nforever\n    if <(x position) < [-420]> then\n        hide\n        stop [this script v]\n    end\nend\n\nwhen I start as a clone\nshow\nwait (0.6) seconds\nforever\n    if <(x position) < [-420]> then\n        delete this clone\n    end\nend\n\nwhen I receive [start v]\nrepeat (10)\n    broadcast (tick v)\nend\n\nwhen flag clicked\nset [xv v] to [0]\n\nchange [para vel v] by (1)\n\nchange x by ((Xv) * (0.1))\n\nset [para vel v] to [1]\n\nset [para vel v] to [-1]\n\n@player\n\nwhen flag clicked\n\nwhen flag clicked\nset [stop sleeping v] to [0]\nset [zel actovation v] to [0]\nset [level v] to [0]\nhide variable [deaths v]\nhide variable [time v]\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [start v]\nforever\n    if <not <key (any v) pressed?>> then\n        if <(vel activation) = [1]> then\n            switch costume to (idle v)\n        end\n    end\nend\n\nwhen I receive [start v]\nwait (1.5) seconds\nshow\nforever\n    if <(vel activation) = [1]> then\n        if <key (right arrow v) pressed?> then\n            switch costume to (lookright v)\n        end\n        if <key (left arrow v) pressed?> then\n            switch costume to (lookleft v)\n        end\n        if <<key (up arrow v) pressed?> and <not <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>>>> then\n            switch costume to (jump v)\n            wait until <(Yv) = [0]>\n        end\n        if <<key (up arrow v) pressed?> and <key (left arrow v) pressed?>> then\n            switch costume to (jumpleft v)\n            wait until <(Yv) = [0]>\n        end\n        if <<key (up arrow v) pressed?> and <key (right arrow v) pressed?>> then\n            switch costume to (jumpright v)\n            wait until <(Yv) = [0]>\n        end\n        if <touching color (#ffffff)?> then\n            set [yv v] to [-20]\n        end\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(vel activation) = [1]> then\n        if <touching (danger v)?> then\n            broadcast (player death v)\n            wait until <not <touching (danger v)?>>\n        end\n    end\nend\n\nwhen I receive [player death v]\nif <(death counter act) = [9]> then\n    change [deaths v] by (1)\nend\nstop [this script v]\n\ngo to x: (0) y: (0)\n\nwhen I receive [start v]\nrepeat until <(level) = [9]>\n    change [time v] by (1)\n    wait (1) seconds\nend\nshow variable [time v]\nshow variable [deaths v]\n\nwhen I receive [blink v]\nswitch costume to (blink v)\n\nwhen I receive [start v]\nforever\n    if <(vel activation) = [1]> then\n        wait (pick random (1.2) to (3)) seconds\n        broadcast (blink v)\n    end\nend\n\nwhen I receive [start v]\n\n\nwait (0.1) seconds\nswitch costume to (sleep3 v)\n\nwhen I receive [start v]\nset [stop sleeping v] to [1]\nset [vel activation v] to [1]\nset [zel actovation v] to [1]\n\nsay [Hello!] for (2) seconds\n\nwhen I receive [start v]\n\nrepeat until <<touching (mouse-pointer v)?> and <mouse down?>>\n\nwhen I receive [start v]\nforever\n    if <touching (bounce v)?> then\n        broadcast (bounce v)\n    end\nend\n\nstop [this script v]\n\nwait until <<touching (mouse-pointer v)?> and <mouse down?>>\n\n@Sprite2\n\nwhen flag clicked\nset [logo vel v] to [0]\npoint in direction (90)\ngo to x: (0) y: (0)\nhide\nwait (0.25) seconds\nshow\nset size to (0) %\nrepeat (50)\n    set [size vel v] to ((((size vel) * (1.6)) + ((((200) + (0)) - (size)) + (0))) / (2))\n    change size by (size vel)\nend\nset size to (200) %\nrepeat (30)\n    change [ghost v] effect by (4)\n    turn right (6) degrees\n    change y by (logo vel)\n    change [logo vel v] by (-1)\nend\nbroadcast (start v)\n\n@platforms\n\nwhen I receive [player death v]\nchange [deaths v] by (1)\nstart sound [Crunch v]\nset [vel activation v] to [0]\nwait (1.8) seconds\nset [vel activation v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\ngo to x: (750) y: (0)\n\nwhen I receive [start v]\nset [death counter act v] to [1]\nforever\n    if <(level) = [9]> then\n        set [death counter act v] to [0]\n    end\nend\n\nwhen I receive [next level v]\nset [vel activation v] to [0]\nwait (1.8) seconds\nset [vel activation v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nnext costume\ngo to x: (750) y: (0)\n\nwhen I receive [start v]\nwait (1) seconds\nforever\n    if <[250] < (y position)> then\n        start sound [Crunch v]\n        broadcast (player death v)\n        wait (1.5) seconds\n        set [yv v] to [0]\n        go to x: (750) y: (-200)\n    end\nend\n\nwhen I receive [start v]\nset [vel activation v] to [0]\nhide\nwait (1.5) seconds\nshow\nswitch costume to (intro v)\nset size to (380) %\nswitch costume to (lvl1 v)\ngo to x: (750) y: (137)\nset [time v] to [0]\nset [deaths v] to [0]\nset [xv v] to [0]\nset [level v] to [0]\nset [yv v] to [0]\nforever\n    if <(vel activation) = [1]> then\n        if <key (right arrow v) pressed?> then\n            change [xv v] by (-1)\n        end\n        if <key (left arrow v) pressed?> then\n            change [xv v] by (1)\n        end\n        set [xv v] to ((Xv) * (0.9))\n        set [colllide v] to [0]\n        change x by (Xv)\n        if <touching (player v)?> then\n            change y by (-1)\n            if <touching (player v)?> then\n                change y by (-1)\n                if <touching (player v)?> then\n                    change y by (-1)\n                    if <touching (player v)?> then\n                        change y by (-1)\n                        if <touching (player v)?> then\n                            change y by (-1)\n                            if <touching (player v)?> then\n                                change x by ((Xv) * (-1))\n                                set [colllide v] to [1]\n                                change y by (5)\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 (player v)?> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\n        end\n        change y by (1)\n        if <touching (player v)?> then\n            if <key (up arrow v) pressed?> then\n                set [yv v] to [-12]\n            end\n        end\n        change y by (-1)\n    end\nend\n\nwhen flag clicked\nhide\n\nbroadcast (start v)\n\nwhen I receive [bounce v]\nset [yv v] to [-15]\n\n@Sprite3\n\nwhen flag clicked\nhide\nclear graphic effects\nrepeat (10)\n    create clone of (_myself_ v)\nend\ngo to [back v] layer\ngo to (sprite2 v)\nshow\nset [part vel v] to [10]\npoint in direction (pick random (1) to (360))\nrepeat (30)\n    move (10) steps\n    change [ghost v] effect by (3.34)\n    change y by (part vel)\n    change [part vel v] by (-1)\nend\nwait (0.5) seconds\n\nset y to (10)\n\nwhen I start as a clone\nhide\nswitch costume to (pick random (1) to (2))\ngo to (sprite2 v)\nclear graphic effects\nwait (0.23) seconds\nshow\ngo to [back v] layer\npoint in direction (pick random (1) to (360))\nrepeat (30)\n    change [ghost v] effect by (3.34)\n    move (10) steps\n    change y by (part vel)\nend\n\ndelete this clone\n\nwait (0.1) seconds\n\n