Monochromatic 2 -- A Platformer 

Instructions: Original Share Date: 5 Sep 2019\nReshare Date: 12 Jun 2020\n\nThis is \nᎷᎧᏁᎧፈᏂᏒᎧᎷᏗᏖᎥፈ - Ꮧ ᎮᏝᏗᏖᎦᎧᏒᎷᏋᏒ 2\n\nWelcome to ᎷᎧᏁᎧፈᏂᏒᎧᎷᏗᏖᎥፈ - Ꮧ ᎮᏝᏗᏖᎦᎧᏒᎷᏋᏒ 2\n\nPlease complete Part 1 First! (Link below)\n\nhttps://scratch.mit.edu/projects/326688140/\n\nBest platformer I've ever made!\n\nIf you liked this, suggest it to this studio:\n\nhttps://scratch.mit.edu/studios/4228481\n\nLove, fave and follow for Part 3, and possibly a different platformer, so get suggesting\n\nIf you find a glitch or want something in the game, let me know in the comments! I'll see what I can do :3\n\nWith 14 levels in total, 7 new, you're guaranteed to have fun!\n\nUpgrades:\n» Moving Portal\n» Smoother movements\n» More levels\n» Timer\n» Curvier, and better Player\n» Better interface\n» Upgraded trail\n» Smoother wall-jump\n_____________________________________________\n\nInstructions:\n✰ Arrow keys [up, right, left]\n✰ Avoid Spikes [sharp thingymabbobs], except for the opposite level!\n✰ Go into the portal\n✰ All levels are possible, no matter how many times you die, just know that the levels are possible, so don't complain, I have tested each level myself!\n_____________________________________________\n\nLove for Part 3!\n\nCredits:\nInspired by @Max-0\nThanks to @jromagnoli for part of the platforming script\nThanks to @xamuil2 for the clone trail\nME for the rest, and the art of the thumbnail\nThumbnail inspired by @Max-0 's game, Black\nMusic - Timelapse by TheFatRat\n_____________________________________________\n\nTags: \n#monochromatic #platformer #onecolour #square #ouch #spikes #jump #move #win #chromatic #mono #black #noothercolour #follow #NDP #fave #love #Part3\n_____________________________________________\n\nFollow for Part 3, or I will eat your cookies   >:~)

@Stage\n\nwhen flag clicked\nwait (4) seconds\nforever\n    play sound [TheFatRat - Time Lapse.mp3 v] until done\nend\n\n@-ball-(er)\n\nwhen I start as a clone\nrepeat (10)\n    change size by (-4)\n    change [ghost v] effect by (10)\n    change y by (-1)\nend\ndelete this clone\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nhide\nwait (3) seconds\nbroadcast (del v)\nset [yv v] to [0]\nset [xv v] to [0]\nset [level v] to [1]\nswitch costume to (ball v)\nset size to (50) %\npoint in direction (90)\nshow\nset [ghost v] effect to (0)\ngo to x: (-150) y: (0)\nforever\n    omega\nend\n\ndefine omega\nif <not <touching (sprite1 v)?>> then\n    switch costume to (join [ball] (<key (right arrow v) pressed?> + (<key (left arrow v) pressed?> * (-1))))\n    change [xv v] by ((<key (left arrow v) pressed?> * (-3)) + (<key (right arrow v) pressed?> * (3)))\nend\nset [xv v] to ((Xv) * (0.7))\nchange x by (Xv)\ndetect slope: (8) (15) (13)\nchange [yv v] by (-1)\nchange y by (Yv)\nif <touching (sprite1 v)?> then\n    out2 <(Yv) > [0]>\nend\nchange y by (-1)\nif <<touching (sprite1 v)?> and <<key (up arrow v) pressed?> or <key (space v) pressed?>>> then\n    start sound [Jump v]\n    set [yv v] to [15]\nend\nif <touching (follow 4 more v)?> then\n    set [yv v] to [18]\nend\nchange y by (1)\nif <<touching (sprite3 v)?> or <(y position) < [-178]>> then\n    go to x: (-150) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\n    change [timer v] by (1)\nend\nif <touching (portal v)?> then\n    change [level v] by (1)\n    hide\n    go to x: (-190) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\n    broadcast (message1 v)\n    show\nend\n\nwhen I receive [del v]\ndelete this clone\n\ndefine out <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [8]>>\n        change [i v] by (1)\n        change x by (-1)\n    end\nelse\n    if <[0] > (Xv)> then\n        repeat until <<not <touching (sprite1 v)?>> or <(i) > [8]>>\n            change [i v] by (1)\n            change x by (1)\n        end\n    end\nend\n\ndefine out2 <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (-1)\n    end\n    set [yv v] to [-1]\nelse\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (1)\n    end\n    set [yv v] to [0]\nend\n\ndefine detect slope: (maxslope) (walljump) (jumpheight)\nset [i v] to [0]\nrepeat until <<(i) > (maxslope)> or <not <touching (sprite1 v)?>>>\n    change [i v] by (1)\n    change y by (1)\nend\nset [i2 v] to (i)\nif <touching (sprite1 v)?> then\n    out <(Xv) > [0]>\n    change y by ((0) - (i2))\n    if <<key (up arrow v) pressed?> or <key (space v) pressed?>> then\n        start sound [Jump v]\n        if <(Xv) > [0]> then\n            set [xv v] to ((0) - (walljump))\n        else\n            set [xv v] to (walljump)\n        end\n        set [yv v] to (jumpheight)\n    else\n        set [xv v] to [0]\n    end\nend\n\n@Sprite1\n\nwhen flag clicked\nhide variable [timer v]\nset [timer v] to [0]\nwait (3) seconds\nshow variable [timer v]\nrepeat until <(level) = [15]>\n    wait (1) seconds\n    change [timer v] by (1)\nend\n\nwhen I receive [message1 v]\nswitch costume to (join [costume] (level))\n\nwhen flag clicked\nhide\nwait (3) seconds\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\n@Sprite2\n\nwhen flag clicked\nset [ghost v] effect to (0)\nwait (1) seconds\nrepeat (100)\n    change [ghost v] effect by (1)\nend\ngo to [front v] layer\n\n@Portal\n\nwhen I start as a clone\nset size to (100) %\nrepeat (20)\n    change [ghost v] effect by (10)\n    change size by (-6)\nend\ndelete this clone\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nforever\n    if <(level) = [5]> then\n        set y to ((75) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n    else\n        if <(level) = [6]> then\n            set y to ((-30) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n        else\n            if <(level) = [7]> then\n                set y to ((80) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n            else\n                if <(level) = [11]> then\n                    set y to ((80) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n                else\n                    set y to ((-50) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n                    if <(level) = [12]> then\n                        set y to ((50) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n                    else\n                        set y to ((-50) + ((20) * ([cos v] of (((timer) - (50)) * (300)) )))\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nhide\nwait (3) seconds\nshow\n\n@Sprite3\n\nwhen flag clicked\nhide\nwait (3) seconds\ngo to [back v] layer\ngo [backward v] (2) layers\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\nwhen I receive [message1 v]\nswitch costume to (join [costume] (level))\nif <(level) = [15]> then\n    set [timer v] to (Timer)\nend\n\nstop [all v]\n\n