Pixel Parkour Platformer

Instructions: Use the Arrow keys to move.\nThe dark blue makes you bounce high.\nThe green disables your wall jumping ability.\nThe red kills you.\nThe aqua is water.\nThe lightest blue is ice.\nThe yellow teleports you.\nHave fun.

@Stage\n\nset [score v] to [0]\nif <(item (10) of [score v]) > (Stopwatch)> then\n    replace item (10) of [score v] with (Stopwatch)\n    if <(item (9) of [score v]) > (Stopwatch)> then\n        replace item (10) of [score v] with (item (9) of [score v])\n        replace item (9) of [score v] with (Stopwatch)\n        if <(item (8) of [score v]) > (Stopwatch)> then\n            replace item (9) of [score v] with (item (8) of [score v])\n            replace item (8) of [score v] with (Stopwatch)\n            if <(item (7) of [score v]) > (Stopwatch)> then\n                replace item (8) of [score v] with (item (7) of [score v])\n                replace item (7) of [score v] with (Stopwatch)\n                if <(item (6) of [score v]) > (Stopwatch)> then\n                    replace item (7) of [score v] with (item (6) of [score v])\n                    replace item (6) of [score v] with (Stopwatch)\n                    if <(item (5) of [score v]) > (Stopwatch)> then\n                        replace item (6) of [score v] with (item (5) of [score v])\n                        replace item (5) of [score v] with (Stopwatch)\n                        if <(item (4) of [score v]) > (Stopwatch)> then\n                            replace item (5) of [score v] with (item (4) of [score v])\n                            replace item (4) of [score v] with (Stopwatch)\n                            if <(item (3) of [score v]) > (Stopwatch)> then\n                                replace item (4) of [score v] with (item (3) of [score v])\n                                replace item (3) of [score v] with (Stopwatch)\n                                if <(item (2) of [score v]) > (Stopwatch)> then\n                                    replace item (3) of [score v] with (item (2) of [score v])\n                                    replace item (2) of [score v] with (Stopwatch)\n                                    if <(item (1) of [score v]) > (Stopwatch)> then\n                                        replace item (2) of [score v] with (item (1) of [score v])\n                                        replace item (1) of [score v] with (Stopwatch)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nshow list [highscores v]\nshow list [death highscores v]\n\nwhen I receive [end v]\nhide list [highscores v]\nhide list [death highscores v]\nhide variable [stopwatch v]\nset [truetime v] to (timer)\nif <(TrueTime) < (☁ score1)> then\n    set [☁ score3 v] to (☁ score2)\n    set [☁ score2 v] to (☁ score1)\n    set [☁ score1 v] to (TrueTime)\nelse\n    if <(TrueTime) < (☁ score2)> then\n        set [☁ score3 v] to (☁ score2)\n        set [☁ score2 v] to (TrueTime)\n    else\n        if <(TrueTime) < (☁ score3)> then\n            set [☁ score3 v] to [0]\n        end\n    end\nend\nif <(Deaths) < (☁ death1)> then\n    set [☁ death3 v] to (☁ death2)\n    set [☁ death2 v] to (☁ death1)\n    set [☁ death1 v] to (Deaths)\nelse\n    if <(Deaths) < (☁ death2)> then\n        set [☁ death3 v] to (☁ death2)\n        set [☁ death2 v] to (Deaths)\n    else\n        if <(Deaths) < (☁ death3)> then\n            set [☁ death3 v] to (Deaths)\n        end\n    end\nend\nreplace item (1) of [highscores v] with (join (☁ score1) [ seconds.])\nreplace item (2) of [highscores v] with (join (☁ score2) [ seconds.])\nreplace item (3) of [highscores v] with (join (☁ score3) [ seconds.])\nreplace item (1) of [death highscores v] with (join (☁ death1) [ deaths.])\nreplace item (2) of [death highscores v] with (join (☁ death2) [ deaths.])\nreplace item (3) of [death highscores v] with (join (☁ death3) [ deaths.])\n\n@Sprite2\n\nwhen flag clicked\nshow variable [stopwatch v]\nset size to (100) %\nshow list [add v]\nshow list [highscores v]\nset rotation style [left-right v]\ngo to x: (-200) y: (-9)\nshow\nset [speed y v] to [0]\nforever\n    set [charx v] to (x position)\n    set [chary v] to (y position)\n    change [speed y v] by (-0.5)\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        change [speed x v] by (0.7)\n        point in direction (90)\n    end\n    if <key (r v) pressed?> then\n        change [deaths v] by (1)\n        set [speed y v] to [0]\n        set [red v] to [0]\n        go to x: (-213) y: (-113)\n        wait (0.2) seconds\n    end\n    if <touching color (#ff9400)?> then\n        if <key (z v) pressed?> then\n            change size by (1)\n        end\n        if <key (x v) pressed?> then\n            change size by (-1)\n        end\n        if <(size) > [200]> then\n            set size to (200) %\n        end\n        if <(size) < [40]> then\n            set size to (40) %\n        end\n    else\n        set size to (100) %\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [speed x v] by (-0.7)\n        point in direction (90)\n    end\n    if <touching (sprite5 v)?> then\n        set [speed x v] to ((speed x) * (0.99))\n        if <(speed x) > [10]> then\n            set [speed x v] to [10]\n        end\n        if <(speed x) < [-10]> then\n            set [speed x v] to [-10]\n        end\n    else\n        set [speed x v] to ((speed x) * (0.9))\n    end\n    change x by (speed x)\n    if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n        change y by (1)\n        if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n            change y by (1)\n            if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n                change y by (1)\n                if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n                    change y by (1)\n                    if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n                        change y by (1)\n                        if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n                            change x by ((speed x) * (-1))\n                            change x by (-1)\n                            change y by (-5)\n                            change x by (1)\n                            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                if <not <touching color (#00ff55)?>> then\n                                    start sound [jump v]\n                                    if <(speed x) > [0]> then\n                                        set [speed x v] to [-8]\n                                    else\n                                        set [speed x v] to [8]\n                                    end\n                                    set [speed y v] to [10]\n                                end\n                            else\n                                set [speed x v] to [0]\n                            end\n                        end\n                        if <touching color (#ccffff)?> then\n                            change y by (-100)\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (speed y)\n    if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n        change y by ((speed y) * (-1))\n        set [speed y v] to [0]\n    end\n    change y by (-1)\n    if <<touching color (#000000)?> or <touching color (#ccffff)?>> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            start sound [jump v]\n            set [speed y v] to [10]\n        end\n    end\n    change y by (1)\n    if <touching color (#ff0000)?> then\n        set [red v] to [0]\n        start sound [bxsb v]\n        change [stopwatch v] by (5)\n        create clone of (_myself_ v)\n        change [deaths v] by (1)\n        set [speed y v] to [0]\n        set [speed x v] to [0]\n        go to x: (-213) y: (-113)\n        set [ghost v] effect to (0)\n    end\n    if <touching color (#00cc44)?> then\n        if <(Level) = [29]> then\n            switch backdrop to (backdrop17 v)\n            set [red v] to [0]\n            hide variable [plevel v]\n            hide variable [deaths v]\n            hide\n            broadcast (End v)\n        else\n            set [speed y v] to [0]\n            change [level v] by (1)\n            go to x: (-213) y: (-113)\n            set size to (100) %\n            switch backdrop to (next backdrop v)\n        end\n    end\n    if <touching color (#003fff)?> then\n        start sound [jump v]\n        set [speed y v] to [15]\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            change [speed y v] by (3)\n        end\n    end\n    if <touching color (#00ffff)?> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            set [speed y v] to [5]\n        else\n            set [speed y v] to [-1]\n        end\n        if <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n            set [speed y v] to [-5]\n        end\n    end\n    if <touching (sprite1 v)?> then\n        go to x: (tx1) y: ((ty1) + (-35))\n        set [speed y v] to [0]\n    else\n        if <touching (sprite4 v)?> then\n            go to x: (tx2) y: ((ty2) + (-35))\n            set [speed y v] to [0]\n        end\n    end\n    if <(Level) = [101]> then\n        set [plevel v] to [The end!]\n    else\n        set [plevel v] to (join [Level ] (join (Level) [/100]))\n    end\n    if <<(y position) < [-179]> and <(backdrop [name v]) = [costume2]>> then\n        go to x: (-200) y: (-133)\n        set [speed y v] to [0]\n        change [deaths v] by (1)\n    end\nend\n\nwhen flag clicked\nreset timer\nset [stopwatch v] to [0]\nrepeat until <<(Level) = [29]> and <touching color (#00cc44)?>>\n    set [stopwatch v] to ((timer) + ((Deaths) * (5)))\nend\n\nwhen backdrop switches to [backdrop17 v]\nhide\n\nwhen backdrop switches to [costume6 v]\nrepeat until <not <(backdrop [name v]) = [costume6]>>\n    if <(x position) > [165]> then\n        broadcast (Restart v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching color (#ff00bf)?> then\n        change [bosshit v] by (1)\n        wait (1) seconds\n    end\nend\n\nwhen I start as a clone\nrepeat (50)\n    change [ghost v] effect by (4)\nend\ndelete this clone\n\n@Sprite3\n\nwhen flag clicked\nshow\ngo to x: (306) y: (-190)\nswitch backdrop to (costume1 v)\nset size to (100) %\nshow variable [plevel v]\nshow variable [deaths v]\nset [level v] to [1]\nset [deaths v] to [0]\n\nwhen backdrop switches to [costume5 v]\ngo to x: (167) y: (10)\nset size to (50) %\n\nwhen backdrop switches to [costume8 v]\ngo to x: (28) y: (140)\nset size to (20) %\n\nwhen backdrop switches to [backdrop1 v]\ngo to x: (110) y: (114)\nset size to (100) %\n\nwhen backdrop switches to [costume1 v]\ngo to x: (313) y: (-190)\nset size to (100) %\nset [deaths v] to [0]\nset [level v] to [1]\n\nwhen backdrop switches to [costume7 v]\ngo to x: (300) y: (-190)\n\nwhen backdrop switches to [costume7 v]\ngo to x: (296) y: (77)\n\nwhen backdrop switches to [backdrop4 v]\ngo to x: (322) y: (-194)\n\nwhen backdrop switches to [backdrop6 v]\ngo to x: (322) y: (-88)\n\nwhen backdrop switches to [backdrop5 v]\ngo to x: (71) y: (38)\n\nwhen backdrop switches to [backdrop8 v]\ngo to x: (348) y: (65)\n\nwhen backdrop switches to [backdrop76 v]\ngo to x: (-95) y: (29)\n\nwhen backdrop switches to [backdrop9 v]\ngo to x: (300) y: (21)\n\nwhen backdrop switches to [backdrop11 v]\ngo to x: (-31) y: (87)\n\nwhen backdrop switches to [backdrop12 v]\ngo to x: (-64) y: (18)\n\nwhen backdrop switches to [backdrop13 v]\ngo to x: (312) y: (-182)\n\nwhen I receive [end v]\nhide\n\nwhen backdrop switches to [backdrop18 v]\ngo to x: (-110) y: (20)\n\nwhen backdrop switches to [backdrop19 v]\ngo to x: (317) y: (-122)\n\nwhen backdrop switches to [backdrop18 v]\nshow\ngo to x: (319) y: (-48)\n\nwhen backdrop switches to [backdrop17 v]\nhide\n\nwhen backdrop switches to [costume6 v]\ngo to x: (317) y: (28)\n\nwhen backdrop switches to [backdrop20 v]\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (-101) y: (108)\nshow\n\n@Sprite4\n\nwhen flag clicked\nset size to (50) %\nhide\nforever\n    set [tx1 v] to (x position)\n    set [ty1 v] to (y position)\n    if <<<<<<(backdrop [name v]) = [backdrop21]> or <(backdrop [name v]) = [backdrop16]>> or <(backdrop [name v]) = [backdrop18]>> or <(backdrop [name v]) = [backdrop9]>> or <(backdrop [name v]) = [backdrop12]>> or <<(backdrop [name v]) = [backdrop10]> or <(backdrop [name v]) = [backdrop11]>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen backdrop switches to [backdrop9 v]\ngo to x: (-187) y: (102)\ngo to x: (-199) y: (98)\nshow\n\nwhen backdrop switches to [backdrop11 v]\ngo to x: (-207) y: (124)\n\nwhen backdrop switches to [backdrop12 v]\ngo to x: (-181) y: (180)\n\nwhen backdrop switches to [backdrop15 v]\ngo to x: (-44) y: (146)\n\nwhen backdrop switches to [backdrop16 v]\ngo to x: (152) y: (-130)\n\nwhen I receive [end v]\nhide\n\nwhen backdrop switches to [backdrop18 v]\ngo to x: (205) y: (-106)\n\nwhen backdrop switches to [backdrop21 v]\nset size to (30) %\ngo to x: (5) y: (120)\n\n@Sprite1\n\nwhen flag clicked\nset size to (100) %\nhide\nforever\n    set [tx2 v] to (x position)\n    set [ty2 v] to (y position)\n    if <<<<<<(backdrop [name v]) = [backdrop21]> or <(backdrop [name v]) = [backdrop16]>> or <(backdrop [name v]) = [backdrop18]>> or <(backdrop [name v]) = [backdrop9]>> or <(backdrop [name v]) = [backdrop12]>> or <<(backdrop [name v]) = [backdrop10]> or <(backdrop [name v]) = [backdrop11]>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen backdrop switches to [backdrop9 v]\ngo to x: (187) y: (-119)\nshow\n\nwhen backdrop switches to [backdrop11 v]\ngo to x: (3) y: (-92)\n\nwhen backdrop switches to [backdrop12 v]\ngo to x: (205) y: (-148)\n\nwhen backdrop switches to [backdrop15 v]\ngo to x: (65) y: (143)\n\nwhen backdrop switches to [backdrop16 v]\ngo to x: (199) y: (187)\n\nwhen I receive [end v]\nhide\n\nwhen backdrop switches to [backdrop18 v]\ngo to x: (-213) y: (184)\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (117) y: (120)\nset size to (60) %\n\n@Sprite5\n\nwhen flag clicked\ngo [backward v] (100) layers\nhide\ngo to x: (20) y: (-169)\n\nwhen backdrop switches to [backdrop13 v]\nshow\nset size to (60) %\ngo to x: (20) y: (-169)\n\nwhen backdrop switches to [backdrop14 v]\nshow\ngo to x: (-56) y: (-173)\n\nwhen backdrop switches to [costume1 v]\nhide\n\nwhen backdrop switches to [backdrop15 v]\nhide\n\nwhen backdrop switches to [backdrop16 v]\nshow\nset size to (40) %\ngo to x: (-84) y: (34)\n\nwhen I receive [end v]\nhide\n\nwhen backdrop switches to [backdrop19 v]\nhide\n\nwhen backdrop switches to [backdrop21 v]\nset size to (25) %\ngo to x: (-86) y: (-1)\nshow\n\n@Sprite6\n\nwhen I receive [end v]\n\n@Sprite7\n\nwhen flag clicked\nset size to (100) %\nset [red v] to [0]\nswitch costume to (costume1 v)\ngo to x: (-84) y: (-108)\nhide\nforever\n    if <<<(backdrop [name v]) = [backdrop21]> or <(backdrop [name v]) = [backdrop19]>> or <(backdrop [name v]) = [backdrop18]>> then\n        show\n    else\n        hide\n    end\n    if <touching (sprite2 v)?> then\n        set [red v] to [1]\n    end\n    if <(RED) = [0]> then\n        switch costume to (costume1 v)\n    end\n    if <(RED) = [1]> then\n        switch costume to (costume2 v)\n    end\nend\n\nwhen backdrop switches to [backdrop19 v]\nswitch costume to (costume1 v)\nset [red v] to [0]\n\nwhen backdrop switches to [backdrop18 v]\ngo to x: (-204) y: (36)\nswitch costume to (costume1 v)\nset [red v] to [0]\n\nwhen backdrop switches to [backdrop21 v]\nset size to (55) %\ngo to x: (214) y: (154)\n\n@Sprite8\n\nwhen flag clicked\nset [red v] to [0]\nhide\ngo to x: (202) y: (-65)\nforever\n    if <(RED) = [0]> then\n        switch costume to (costume1 v)\n    end\n    if <<<(backdrop [name v]) = [backdrop21]> or <(backdrop [name v]) = [backdrop19]>> or <(backdrop [name v]) = [backdrop18]>> then\n        show\n    else\n        hide\n    end\n    if <(RED) = [1]> then\n        switch costume to (costume2 v)\n    end\nend\n\nwhen backdrop switches to [backdrop18 v]\ngo to x: (220) y: (9)\n\nwhen backdrop switches to [backdrop21 v]\nshow\ngo to x: (-122) y: (159)\n\n@Sprite9\n\nwhen flag clicked\nhide\n\nwhen I receive [restart v]\nshow\n\nwhen backdrop switches to [backdrop4 v]\nhide\n\n@Sprite10\n\nwhen flag clicked\nhide\n\nwhen I receive [restart v]\nshow\n\nwhen backdrop switches to [backdrop4 v]\nhide\n\n@Sprite11\n\nwhen flag clicked\ngo to x: (0) y: (125)\nset size to (170) %\nhide\nset [bosshit v] to [0]\nswitch costume to (costume1 v)\nforever\n    if <(backdrop [name v]) = [backdrop20]> then\n        show\n        say [I hate your perfect roundness!!!!!] for (2) seconds\n        say [You must die!!] for (2) seconds\n        repeat until <(BossHit) > [3]>\n            wait (4) seconds\n            switch costume to (costume2 v)\n            wait (4) seconds\n            switch costume to (costume1 v)\n        end\n        say [I dead] for (2) seconds\n        set [speed y v] to [0]\n        change [level v] by (1)\n        go to x: (-213) y: (-113)\n        switch backdrop to (next backdrop v)\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nset size to (170) %\nforever\n    set size to (170) %\n    if <(backdrop [name v]) = [backdrop20]> then\n        show\n        if <(x position) < (charX)> then\n            glide (1) secs to x: ((x position) + (20)) y: (125)\n        end\n        if <(x position) > (charX)> then\n            glide (1) secs to x: ((x position) + (-20)) y: (125)\n        end\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    set [bossy v] to (y position)\n    set [bossx v] to (x position)\nend\n\n@Heart\n\nwhen flag clicked\nforever\n    if <(backdrop [name v]) = [backdrop20]> then\n        show\n        go to x: ((BossX) + (50)) y: ((BossY) + (25))\n        switch costume to ((5) - (BossHit))\n    else\n        hide\n    end\nend\n\n