Planet || A Platformer

Instructions: You're a NASA astonaut sent to discover a new planet (that could replace the earth) to save people on earth (they would live there). You save the earth if you clear all the levels.\n\nArrows or WASD to move. \n\nColors :\n\n- Green : ground\n- Yellow : bounce\n- Orange : great surprise\n\nDon't touch the spikes and aliens.\n\nYou can climb wall.\n\nSome levels are hard, but NOT impossible.\n\nYou can skip levels by clicking on the red button with the skip sign.\n\nYou can restart a level by clicking on the red button with the restart sign.\n\nTHERE WILL BE MORE INFORMATION IN THE GAME. 

@Stage\n\nwhen flag clicked\nswitch backdrop to (arrière plan1 v)\n\nwhen I receive [depart v]\nswitch backdrop to (space v)\n\nwhen I receive [depart v]\nforever\n    play sound [s v] until done\nend\n\n@platforme\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [depart v]\nswitch costume to (costume1 v)\nshow\n\nwhen flag clicked\ngo to x: (36) y: (28)\nhide\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [3]> then\n        broadcast (show2 v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [4]> then\n        broadcast (show v)\n        broadcast (hide2 v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [5]> then\n        broadcast (hide v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [8]> then\n        broadcast (show2 v)\n        broadcast (surprise1 v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [11]> then\n        broadcast (showidk v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [12]> then\n        broadcast (hide2 v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [next v]\nnext costume\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [14]> then\n        broadcast (surprise2 v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [16]> then\n        broadcast (showbounce v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [17]> then\n        broadcast (e v)\n        broadcast (hide v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [depart v]\nforever\n    if <(costume [number v]) = [18]> then\n        start sound [Win v]\n        broadcast (end v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [end v]\nforever\n    if <(costume [number v]) = [1]> then\n        broadcast (showcube v)\n        stop [this script v]\n    end\nend\n\n@pluie\n\nwhen I start as a clone\nshow\nforever\n    go to [back v] layer\n    set [ghost v] effect to (75)\n    set [brightness v] effect to (pick random (25) to (-25))\n    if <(pick random (1) to (2)) = [1]> then\n        go to x: (pick random (-230) to (240)) y: (176)\n    else\n        go to x: (240) y: (pick random (176) to (-150))\n    end\n    point in direction (pick random (-110) to (-100))\n    repeat until <<[-150] > (y position)> or <[-230] > (x position)>>\n        move (6) steps\n    end\nend\n\nwhen I receive [depart v]\nhide\nforever\n    wait (0.05) seconds\n    create clone of (_myself_ v)\nend\n\n@cube2\n\ndefine Physics\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(x position) < (mouse x)>>> then\n    switch costume to (costume1 v)\n    change [xmovement v] by (2)\nelse\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n        switch costume to (costume2 v)\n        change [xmovement v] by (-2)\n    end\nend\nset [xmovement v] to ((Xmovement) * ((0.78) - (Friction)))\nchange x by (Xmovement)\nchange [yv v] by (-1.2)\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change y by (1)\nend\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change y by (1)\nend\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change y by (1)\nend\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change y by (1)\nend\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change x by ((Xmovement) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(y position) < (mouse y)>>> then\n        set [yv v] to [15]\n        if <(Xmovement) > [0]> then\n            set [xmovement v] to [-7]\n        else\n            set [xmovement v] to [7]\n        end\n    else\n        set [xmovement v] to [0]\n    end\nend\nchange y by (Yv)\nif <<touching color (#2ce600)?> or <touching color (#49ff1a)?>> then\n    change y by ((Yv) - ((Yv) * (2)))\n    set [yv v] to [0]\nend\nchange y by (-1)\nif <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(y position) < (mouse y)>>> and <touching color (#2ce600)?>> then\n    set [yv v] to [15]\nend\nif <(x position) > [239]> then\n    hide\n    start sound [Teleport2 v]\n    broadcast (next level v)\n    set [next? v] to [1]\n    wait (0.1) seconds\n    set [next? v] to [0]\nend\nif <(y position) < [-179]> then\n    go to x: (-198) y: (-45)\nend\nif <touching color (#fcff00)?> then\n    set [yv v] to [26]\nend\nif <<touching (sprite2 v)?> or <<touching color (#008f90)?> or <touching color (#00feff)?>>> then\n    hide\n    start sound [Oops v]\n    go to x: (-198) y: (-45)\n    show\n    set [ghost v] effect to (100)\n    repeat (25)\n        change [ghost v] effect by (-4)\n    end\nend\n\nwhen I receive [next level v]\nset [yv v] to [0]\ngo to x: (-198) y: (-45)\nshow\nset [ghost v] effect to (100)\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\n\npoint in direction (-90)\n\nwhen I receive [restart v]\nset [yv v] to [0]\ngo to x: (-198) y: (-45)\n\nwhen I receive [depart v]\nswitch costume to (costume1 v)\npoint in direction (90)\nshow\npoint in direction (90)\ngo to [front v] layer\nset [yv v] to [0]\ngo to x: (-198) y: (-45)\nset size to (200) %\nforever\n    Physics\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\n\nwhen I receive [surprise1 v]\nforever\n    if <touching color (#ffac00)?> then\n        start sound [Magic Spell v]\n        broadcast (change v)\n        broadcast (next v)\n        broadcast (hide2 v)\n    end\nend\n\nwhen I receive [surprise1 v]\nforever\n    if <touching color (#ffc000)?> then\n        start sound [Magic Spell v]\n        broadcast (next v)\n    end\nend\n\nwhen I receive [surprise2 v]\nforever\n    if <touching color (#ffa100)?> then\n        start sound [Magic Spell v]\n        broadcast (next v)\n    end\nend\n\nwhen I receive [end v]\nhide\n\nwhen I receive [depart v]\nforever\n    wait (0.03) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nswitch costume to (costume3 v)\nset size to (125) %\nset [ghost v] effect to (0)\npoint in direction (pick random (0) to (360))\nrepeat (25)\n    change [ghost v] effect by (4)\n    change size by (-8)\nend\ndelete this clone\n\nwhen I receive [restart v]\nshow\n\nwhen I receive [showcube v]\nshow\n\n@Intro\n\nwhen I receive [intropls v]\ngo to x: (0) y: (0)\nshow\nwait until <<key (any v) pressed?> or <mouse down?>>\nrepeat (50)\n    change [pixelate v] effect by (2)\nend\nhide\nbroadcast (depart v)\n\nwhen flag clicked\nset [pixelate v] effect to (0)\ngo to [back v] layer\nhide\n\nwhen I receive [end v]\nhide\n\n@quidditch\n\nwhen flag clicked\nhide\n\nwhen I receive [end v]\nhide\n\nwhen I receive [end intro v]\nswitch costume to (qui v)\nshow\nrepeat (3)\n    repeat (23)\n        next costume\n        wait (0.05) seconds\n    end\nend\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\nbroadcast (Intropls v)\n\n@by jean000\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    change [color v] effect by (1)\nend\n\nwhen flag clicked\n\nwhen I receive [end intro v]\npoint in direction (90)\nshow\nset [ghost v] effect to (100)\nwait (1) seconds\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\n\nwhen I receive [end intro v]\nset size to (200) %\ngo to [front v] layer\nset [bounce v] to [0]\nwait (3) seconds\nrepeat (2)\n    repeat (2)\n        point in direction (90)\n        set size to (200) %\n        go to [front v] layer\n        set [bounce v] to [0]\n        set [bounce v] to [7]\n        repeat (10)\n            change size by (Bounce)\n            change [bounce v] by (-1.5)\n            turn right (Bounce) degrees\n        end\n        set [bounce v] to [5]\n        repeat (10)\n            change size by (Bounce)\n            change [bounce v] by (-1.5)\n            turn left (Bounce) degrees\n        end\n    end\n    repeat (10)\n        change size by (Bounce)\n        change [bounce v] by (-1.5)\n        turn left (Bounce) degrees\n    end\nend\nhide\n\n@bounce\n\nwhen flag clicked\nhide\n\nwhen I receive [depart v]\nhide\nswitch costume to (costume1 v)\nforever\n    if <touching (cube2 v)?> then\n        start sound [Big Boing v]\n        go to [back v] layer\n        repeat (10)\n            next costume\n            wait (0.03) seconds\n            if <(costume [number v]) = [11]> then\n                switch costume to (costume1 v)\n            end\n        end\n    end\nend\n\nwhen I receive [show v]\ngo to x: (51) y: (-54)\nshow\n\nwhen I receive [next level v]\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [showidk v]\nshow\ngo to x: (-50) y: (-55)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\ngo to x: (156) y: (-54)\nwait until <(Next?) = [1]>\nhide\ndelete this clone\n\nbroadcast (depart v)\n\nwhen I receive [showbounce v]\nshow\ngo to x: (50) y: (-55)\n\nwhen I receive [end v]\nhide\n\n@Sprite2\n\nwhen flag clicked\nhide\n\nwhen I receive [show2 v]\nswitch costume to (costume1 v)\ngo to x: (36) y: (28)\nshow\n\nwhen I receive [hide2 v]\nhide\n\nwhen I receive [showidk v]\nswitch costume to (costume2 v)\ngo to x: (36) y: (28)\nshow\n\nwhen I receive [end v]\nhide\n\nwhen I receive [e v]\nswitch costume to (costume3 v)\nshow\n\n@restart button\n\nwhen this sprite clicked\nbroadcast (restart v)\n\nwhen flag clicked\n\nwhen I receive [depart v]\ngo to x: (-215) y: (-158)\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [end v]\nhide\n\n@Sauter\n\nwhen this sprite clicked\nbroadcast (next level v)\nset [hide? v] to [1]\nwait (0.3) seconds\nset [hide? v] to [0]\n\nwhen I receive [depart v]\nshow\ngo to x: (-170) y: (-158)\n\nwhen flag clicked\nhide\nset [hide? v] to [0]\n\nwait (0.1) seconds\n\nwhen I receive [end v]\nhide\n\n@Sprite6\n\nwhen flag clicked\nhide\n\nwhen I receive [end v]\nset size to (100) %\ngo to [front v] layer\nset [bounce v] to [0]\nwait (3) seconds\nshow\nrepeat until <(Hide?) = [1]>\n    set size to (100) %\n    point in direction (90)\n    go to [front v] layer\n    repeat (2)\n        set [bounce v] to [7]\n        repeat (10)\n            change size by (Bounce)\n            change [bounce v] by (-1.5)\n            turn right (Bounce) degrees\n        end\n        set [bounce v] to [5]\n        repeat (10)\n            change size by (Bounce)\n            change [bounce v] by (-1.5)\n            turn left (Bounce) degrees\n        end\n    end\n    repeat (10)\n        change size by (Bounce)\n        change [bounce v] by (-1.5)\n        turn left (Bounce) degrees\n    end\nend\nhide\n\nbroadcast (end v)\n\nwhen I receive [end v]\nforever\n    if <(Hide?) = [1]> then\n        hide\n    end\nend\n\n@Sprite1\n\nwhen flag clicked\nhide\n\nwhen I receive [change v]\ngo to x: (36) y: (28)\nshow\nforever\n    if <touching (cube2 v)?> then\n        hide\n    end\nend\n\nwhen I receive [end v]\nhide\n\n@Sprite7\n\nwhen flag clicked\nhide\n\nwhen I receive [end v]\nwait (2.4) seconds\nset [ghost v] effect to (100)\nshow\ngo to x: (36) y: (28)\nrepeat until <(Hide?) = [1]>\n    repeat (25)\n        change [ghost v] effect by (-4)\n    end\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\nend\nhide\n\nwhen I receive [end v]\nforever\n    if <(Hide?) = [1]> then\n        hide\n    end\nend\n\n@Sprite3\n\nwhen flag clicked\nhide\n\nwhen I receive [e v]\ngo to x: (-74) y: (-133)\nshow\nrepeat until <(Next?) = [1]>\n    switch costume to (costume1 v)\n    glide (4) secs to x: (-74) y: (100)\n    switch costume to (costume2 v)\n    glide (4) secs to x: (-74) y: (-133)\nend\n\nwhen I receive [end v]\nhide\n\n@Title\n\nwhen flag clicked\nhide\n\n@Sprite5\n\nwhen flag clicked\nhide\n\nwhen I receive [end v]\nwait (0.4) seconds\nset [ghost v] effect to (100)\nshow\ngo to x: (36) y: (28)\nrepeat until <(Hide?) = [1]>\n    repeat (25)\n        change [ghost v] effect by (-4)\n    end\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\nend\nhide\n\nwhen I receive [end v]\nforever\n    if <(Hide?) = [1]> then\n        hide\n    end\nend\n\n@Intro2\n\nwhen I start as a clone\nif <(clone type) = [1]> then\n    go to [front v] layer\n    switch costume to (bg v)\n    show\n    go to x: (427) y: (304)\n    repeat until <<(round (direction)) = [90]> and <<(round (x position)) = [0]> and <(round (y position)) = [0]>>>\n        change x by (((0) - (x position)) / (5))\n        change y by (((0) - (y position)) / (5))\n        turn right (((90) - (direction)) / (4.99)) degrees\n    end\n    wait (0.4) seconds\n    delete this clone\nend\n\nwhen flag clicked\nswitch costume to (final gif v)\nset [vel v] to [0]\nset [intro2: letter v] to [1]\nset size to (100) %\nstart sound [Jim Yosef - Arrow \[NCS Release\] \(128 kbps\)3 v]\ngo to [front v] layer\nreset timer\nhide\nclear graphic effects\npoint in direction (-90)\nset [clone type v] to [BLANK]\ncreate clone of (_myself_ v)\nset [clone type v] to [1]\nrepeat (12)\n    wait (0.1) seconds\n    create clone of (_myself_ v)\n    change [brightness v] effect by (5)\nend\nbroadcast (end intro v)\n\nwhen I start as a clone\nif <(clone type) = [2]> then\n    clear graphic effects\n    switch costume to (bg v)\n    go to x: (0) y: (360)\n    show\n    go to [front v] layer\n    go to [front v] layer\n    set [brightness v] effect to (15)\n    repeat until <(round (y position)) = [160]>\n        change y by (((160) - (y position)) / (8))\n    end\n    wait (2) seconds\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [3]> then\n    clear graphic effects\n    switch costume to (bg v)\n    go to x: (0) y: (-360)\n    show\n    go to [front v] layer\n    go to [front v] layer\n    set [brightness v] effect to (15)\n    repeat until <(round (y position)) = [-160]>\n        change y by (((-160) - (y position)) / (8))\n    end\n    wait (2) seconds\n    delete this clone\nend\n\ndefine smooth action (type) (goal) (speed)\nif <(type) = [x]> then\n    repeat until <(round (x position)) = (goal)>\n        change x by (((goal) - (round (x position))) / (speed))\n    end\nelse\n    if <(type) = [y]> then\n        repeat until <(round (y position)) = (goal)>\n            change y by (((goal) - (round (y position))) / (speed))\n        end\n    else\n        if <(type) = [size]> then\n            repeat until <(round (size)) = (goal)>\n                change size by (((goal) - (size)) / (speed))\n            end\n        end\n    end\nend\n\nwhen I start as a clone\nif <(clone type) = [5]> then\n    switch costume to (diamond v)\n    set size to (1) %\n    show\n    go to [front v] layer\n    repeat until <(round (size)) = [400]>\n        switch costume to (dot v)\n        change size by (((400) - (size)) / (8))\n        switch costume to (diamond v)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [6]> then\n    point in direction (90)\n    clear graphic effects\n    go to x: (0) y: (0)\n    show\n    go to [front v] layer\n    switch costume to (join [letter] (Intro2: letter))\n    set size to (1) %\n    repeat (20)\n        change x by ((((item (Intro2: letter) of [letterpositions v]) - (round (x position))) / (5)) + (0))\n        change size by (((20) - (round (size))) / (5))\n    end\n    clear graphic effects\n    wait (0.4) seconds\n    set [vel v] to [18]\n    repeat until <touching (_edge_ v)?>\n        change [vel v] by (-2)\n        change y by (vel)\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [7]> then\n    point in direction (90)\n    go to x: (0) y: (0)\n    show\n    go to [front v] layer\n    go to [front v] layer\n    switch costume to (dot v)\n    clear graphic effects\n    go to [front v] layer\n    go to [front v] layer\n    set size to (200) %\n    switch costume to (bg2 v)\n    set [ghost v] effect to (100)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\nend\n\nwhen I start as a clone\nif <(clone type) = [8]> then\n    show\n    go to [front v] layer\n    go to [front v] layer\n    switch costume to (final gif v)\n    clear graphic effects\n    go to x: (0) y: (([sin v] of ((timer) * (120)) ) * (12))\n    point in direction (90)\n    go to [front v] layer\n    go to [front v] layer\n    set size to (80) %\n    set [ghost v] effect to (100)\n    go to [front v] layer\n    go to [front v] layer\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\nend\n\nwhen I start as a clone\nif <(clone type) = [8]> then\n    repeat (8)\n        wait (0.5) seconds\n        if <(costume [number v]) = [5]> then\n            switch costume to (final gif v)\n        else\n            next costume\n        end\n    end\nend\n\nwhen I start as a clone\nif <(clone type) = [9]> then\n    go to x: (-480) y: (0)\n    point in direction (90)\n    set size to (100) %\n    show\n    clear graphic effects\n    switch costume to (finishbg v)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    smooth action [x] [35] [6]\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [10]> then\n    go to x: (480) y: (0)\n    point in direction (-90)\n    set size to (100) %\n    show\n    clear graphic effects\n    switch costume to (finishbg v)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    smooth action [x] [-30] [6]\n    switch costume to (blank v)\n    wait (0.4) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    broadcast (start project v)\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [8]> then\n    repeat (155)\n        set y to (([sin v] of ((timer) * (120)) ) * (12))\n        point in direction ((([tan v] of ((timer) * (120)) ) * (8)) + (90))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [7]> then\n    repeat (150)\n        turn right (4) degrees\n        set y to (([sin v] of ((timer) * (100)) ) * (10))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(clone type) = [BLANK]> then\n    show\n    go to [back v] layer\n    switch costume to (blank v)\n    wait (1) seconds\n    delete this clone\nend\n\n@Sprite8\n\nwhen flag clicked\nhide\n\nwhen I receive [depart v]\ngo to [back v] layer\ngo to x: (-195) y: (134)\nshow\nset size to (80) %\n\n