Budgies! A Platformer Game

Instructions: You'll learn how to play in the game. There are 100 levels plus two bonus levels. All levels are now hardcore!\n\nHighly recommended to play MajesticPie's version before this, this platformer requires precision, sometimes down to the split second.\nGood luck! \n\n

@Stage\n\nwhen I receive [start screen v]\nswitch backdrop to (backdrop1 v)\nforever\n    play sound [8-bit v] until done\nend\n\nwhen flag clicked\nforever\n    if <(level) = [12]> then\n        switch backdrop to (backdrop2 v)\n    end\n    if <(level) = [15]> then\n        switch backdrop to (backdrop1 v)\n    end\nend\n\n@Player\n\nwhen flag clicked\ngo to [back v] layer\nswitch costume to (costume1 v)\ngo to x: (0) y: (-60)\nset size to (500) %\nforever\n    if <touching (obsatcles v)?> then\n        go to x: (-198) y: (-116)\n    end\nend\n\nwhen I receive [right v]\nnext costume\n\nwhen I receive [left v]\nswitch costume to ((costume [number v]) - (1))\n\nwhen I receive [start game v]\ngo to x: (-198) y: (-116)\nset size to (400) %\nforever\n    go to [front v] layer\n    if <key (left arrow v) pressed?> then\n        change [xvel v] by (-1.2)\n    end\n    if <key (right arrow v) pressed?> then\n        change [xvel v] by (1.2)\n    end\n    set [xvel v] to ((Xvel) * (0.9))\n    change x by (Xvel)\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 y by (1)\n                            if <touching (ground v)?> then\n                                change y by (1)\n                                if <touching (ground v)?> then\n                                    change x by ((Xvel) * (-1))\n                                    change y by (-7)\n                                    if <key (up arrow v) pressed?> then\n                                        if <(Xvel) > [0]> then\n                                            set [xvel v] to [-5]\n                                        else\n                                            set [xvel v] to [5]\n                                        end\n                                        set [yvel v] to [10]\n                                    else\n                                        set [xvel v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yvel v] by (-1)\n    change y by (Yvel)\n    if <touching (ground v)?> then\n        change y by ((Yvel) * (-1))\n        set [yvel v] to [0]\n    end\n    change y by (-1)\n    if <touching (ground v)?> then\n        if <key (up arrow v) pressed?> then\n            set [yvel v] to [15]\n        end\n    end\n    change y by (1)\nend\n\nwhen I receive [next level v]\ngo to x: (-198) y: (-116)\nchange [level v] by (1)\n\nwhen I receive [player died v]\ngo to x: (-198) y: (-116)\nbroadcast (boss fight v)\n\n@Dark Cube\n\nwhen flag clicked\nset [boss lives v] to [3]\nset size to (400) %\nset [ghost v] effect to (0)\nhide\n\nwhen I receive [boss fight v]\nshow\ngo to x: (74) y: (-118)\nset [ghost v] effect to (50)\nwait (1) seconds\nsay [Hello Pixely. We meet again.] for (3) seconds\nsay [Yes I am alive, partly, I will destroy you this time ] for (4) seconds\nwait (1) seconds\nset [boss lives v] to [3]\nglide (1) secs to x: (0) y: (0)\nsay [take this!] for (3) seconds\nwait (1) seconds\nsay [what why isn't it working] for (3) seconds\nbroadcast (shoot v)\nwait (1) seconds\nsay [oh ok time to perish!] for (3) seconds\nwait (1) seconds\nsay [ummmmmm.....] for (3) seconds\nwait (2) seconds\nsay [where did it go?] for (3) seconds\nbroadcast (boom v)\n\nwhen I receive [boom end v]\nhide\n\n@Ground\n\nwhen flag clicked\nset [level v] to [1]\nswitch costume to (costume1 v)\nforever\n    go to x: (0) y: (0)\n    switch costume to (level)\nend\n\n@Arrow right2\n\nwhen this sprite clicked\nbroadcast (left v)\nwait (.5) seconds\n\nwhen I receive [start game v]\nhide\n\nwhen flag clicked\ngo to x: (-55) y: (-61)\nshow\n\n@play\n\nwhen this sprite clicked\nbroadcast (start game v)\n\nwhen flag clicked\nshow\ngo to x: (14) y: (34)\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (110) %\n    else\n        set size to (100) %\n    end\nend\n\nwhen I receive [start game v]\nhide\n\n@Arrow right\n\nwhen this sprite clicked\nbroadcast (right v)\nwait (.5) seconds\n\nwhen I receive [start game v]\nhide\n\nwhen flag clicked\ngo to x: (49) y: (-61)\nshow\n\n@next\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    if <touching (player v)?> then\n        broadcast (next level v)\n        if <(level) = [14]> then\n            hide\n        end\n    end\nend\n\nwhen I receive [boss fight v]\nhide\n\nwhen I receive [boom end v]\nwait (4) seconds\nshow\n\n@--Atomic--\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [sine v] to [0]\npoint in direction (90)\nforever\n    change [sine v] by (7.5)\n    point in direction ((([sin v] of (sine) ) * (15)) + (90))\n    set size to ((([sin v] of ((sine) * (2)) ) * (25)) + (100)) %\nend\n\nwhen I receive [fade v]\nforever\n    change [ghost v] effect by (5)\nend\n\nstop [other scripts in sprite v]\n\npoint in direction (90)\n\nwhen flag clicked\nshow\nwait (7) seconds\nbroadcast (start screen v)\nhide\n\n@back\n\nwhen flag clicked\nshow\nstart sound [TheFatRat - Jackpot \(Jackpot EP Track 1\).mp3 v]\nset volume to (100) %\n\nwhen I receive [fade v]\nforever\n    change volume by (-2)\nend\n\nwhen I receive [start screen v]\nhide\n\n@letters\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (0)\nhide\nwait (3) seconds\nset [x v] to [30]\nshow\ngo to x: (300) y: (0)\nrepeat until <(x position) = [0]>\n    set [x v] to ((x) / (1.1))\n    change x by ((0) - (x))\nend\n\nwhen flag clicked\nwait (5) seconds\nbroadcast (Fade v)\nforever\n    change [ghost v] effect by (5)\nend\n\nwhen I receive [start screen v]\nhide\n\n@Words\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [start game v]\nswitch costume to (costume1 v)\nshow\nforever\n    go to [front v] layer\n    switch costume to (level)\nend\n\nwhen flag clicked\nwait until <(level) = [14]>\nhide\nbroadcast (boss fight v)\n\nwhen I receive [boom end v]\nwait (4) seconds\nshow\n\n@obsatcles\n\nwhen flag clicked\nhide\n\nwhen I receive [start game v]\nset [ghost v] effect to (0)\nforever\n    if <(level) = [3]> then\n        switch costume to (costume1 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [4]> then\n        switch costume to (costume2 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (100)\n    end\n    if <(level) = [5]> then\n        switch costume to (costume3 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [6]> then\n        switch costume to (costume4 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [7]> then\n        switch costume to (costume5 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [8]> then\n        hide\n    end\n    if <(level) = [10]> then\n        switch costume to (costume6 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [11]> then\n        switch costume to (costume7 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [12]> then\n        switch costume to (costume8 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (0)\n    end\n    if <(level) = [13]> then\n        hide\n    end\nend\n\n@Pixel Jump\n\nwhen flag clicked\nhide\n\nwhen I receive [start screen v]\ngo to x: (-50) y: (120)\nforever\n    set size to (100) %\n    go to x: (-50) y: (120)\n    show\n    clear graphic effects\n    set [ghost v] effect to (0)\n    forever\n        change y by ([cos v] of ((p) / (1)) )\n        change [p v] by (5)\n    end\nend\n\nbroadcast (start screen v)\n\nwhen I receive [start game v]\nhide\n\n@2\n\nwhen flag clicked\nhide\n\nwhen I receive [start screen v]\nset size to (20) %\nshow\ngo to x: (171) y: (110)\npoint in direction (90)\nforever\n    change [2 is turning v] by (7.5)\n    point in direction ((([sin v] of (2 is turning) ) * (15)) + (90))\n    set size to ((([sin v] of ((2 is turning) * (2)) ) * (25)) + (100)) %\nend\n\nwhen I receive [start game v]\nhide\n\n@Scared cube\n\nwhen flag clicked\nhide\nforever\n    if <(level) = [8]> then\n        show\n        go to x: (133) y: (-116)\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nwait until <touching (player v)?>\nsay [whispering* "Help me please. Follow this trail, please Pixely save this place"] for (5) seconds\nsay [Thankyou!] for (2) seconds\n\n@spikes\n\nwhen flag clicked\nhide\n\nwhen I receive [shoot v]\ngo to (dark cube v)\nshow\nglide (1) secs to x: (-69) y: (41)\nwait (3) seconds\nglide (1) secs to x: (-69) y: (41)\nhide\n\n@explode\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nwait (1) seconds\n\nbroadcast (hide cat v)\n\nwait (0.1) seconds\n\nwhen I receive [boom v]\nshow\nstart sound [explbomb v]\nswitch costume to (explode-05-june\[2 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[3 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[4 v)\nwait (0.1) seconds\nbroadcast (boom end v)\nswitch costume to (explode-05-june\[5 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[6 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[7 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[8 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[9 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[10 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[11 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[12 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[13 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[14 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[15 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[16 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[17 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[18 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[19 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[20 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[21 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[22 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[23 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[24 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[25 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[26 v)\nwait (0.1) seconds\nswitch costume to (explode-05-june\[27 v)\nwait (0.1) seconds\nhide\n\n@Sprite1\n\nshow\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nwhen flag clicked\nhide\n\n