Layers: A Top Down Platformer
@Stage\n\nwhen flag clicked\nforever\n    play sound [Vexento - Tevo \(Original Mix\).mp3 v] until done\nend\n\nwhen [x v] key pressed\nstop all sounds\nstop [other scripts in stage v]\nhide variable [timer v]\nhide variable [deaths v]\n\n@Pen\n\ndefine Analyze (string) Cut: (cut) (list#)\nif <(list#) = [1]> then\n    delete (all) of [squares v]\n    set [l v] to [0]\n    add [] to [squares v]\n    repeat (length of (string))\n        change [l v] by (1)\n        if <(letter (l) of (string)) = (cut)> then\n            add [] to [squares v]\n        else\n            replace item (last) of [squares v] with (join (item (last) of [squares v]) (letter (l) of (string)))\n        end\n    end\nelse\n    delete (all) of [split squares v]\n    set [l v] to [0]\n    add [] to [split squares v]\n    repeat (length of (string))\n        change [l v] by (1)\n        if <(letter (l) of (string)) = (cut)> then\n            add [] to [split squares v]\n        else\n            replace item (last) of [split squares v] with (join (item (last) of [split squares v]) (letter (l) of (string)))\n        end\n    end\nend\n\ndefine Print split square <b1> <b2> (width) (height) (letter) (xchange) (ychange)\nif <<(Full?) = [1]> or <<<<(width) > [50]> and <b1>> or <(width) = [100]>> and <<<(height) > [50]> and <b2>> or <(height) = [100]>>>> then\n    if <(letter (letter) of (Split)) = (l)> then\n        Create Square (50)\n    end\n    change x by (xchange)\n    change y by (ychange)\nelse\n    if <<(height) > [50]> and <(width) > [50]>> then\n        if <(letter (letter) of (Split)) = (l)> then\n            if <b1> then\n                Create Rectangle (50) ((height) - (50))\n            else\n                if <b2> then\n                    Create Rectangle ((width) - (50)) (50)\n                else\n                    Create Rectangle ((width) - (50)) ((height) - (50))\n                end\n            end\n        end\n        change x by (xchange)\n        change y by (ychange)\n    else\n        if <(height) > [50]> then\n            if <b1> then\n                if <(letter (letter) of (Split)) = (l)> then\n                    if <b2> then\n                        Create Rectangle (width) (50)\n                    else\n                        Create Rectangle (width) ((height) - (50))\n                    end\n                end\n            end\n            change y by (ychange)\n            change x by (xchange)\n        else\n            if <(width) > [50]> then\n                if <b2> then\n                    if <(letter (letter) of (Split)) = (l)> then\n                        if <b1> then\n                            Create Rectangle (50) (height)\n                        else\n                            Create Rectangle ((width) - (50)) (height)\n                        end\n                    end\n                end\n                change x by (xchange)\n                change y by (ychange)\n            else\n                if <<b1> and <b2>> then\n                    if <(letter (letter) of (Split)) = (l)> then\n                        Create Rectangle (width) (height)\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nReset\n\nwhen I receive [died v]\nchange [deaths v] by (1)\nRestart\nbroadcast (start v)\n\nwhen I receive [start v]\nforever\n    Print\n    if <(Time) = [0]> then\n        Check\n    end\n    change [frames v] by (1)\n    set [timer v] to (round (timer))\nend\n\ndefine Print2\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nshow\nset size to (300) %\nif <<touching color (#dddede)?> or <touching color (#0000ff)?>> then\n    set [touching v] to [1]\n    set [lc v] to [0]\nelse\n    set [touching v] to [0]\n    if <touching color (#5cb712)?> then\n        set [lc v] to [1]\n    end\nend\nif <not <(Time) = [0]>> then\n    set pen size to (((((-1.5) * ((Time) * (Time))) + ((3) * (Time))) + (1)) * (20))\n    set pen color to (#cc0099)\n    pen down\n    pen up\n    switch costume to (costume3 v)\n    hide\nend\n\ndefine Print1\nerase all\nset [blockx v] to [1]\nset [posy v] to (((([sqrt v] of (length of [squares v]) ) - (1)) * (50)) - (Scrolly))\nset y to (posy)\nrepeat ([sqrt v] of (length of [squares v]) )\n    set [posx v] to (((([sqrt v] of (length of [squares v]) ) - (1)) * (50)) - (Scrollx))\n    set x to (posx)\n    if <([abs v] of (posy) ) < [230]> then\n        repeat ([sqrt v] of (length of [squares v]) )\n            if <not <[0] = (item (Blockx) of [squares v])>> then\n                if <([abs v] of (posx) ) < [290]> then\n                    if <(Layer) = (item (Blockx) of [squares v])> then\n                        set pen color to (#5cb712)\n                    else\n                        if <(Layer) > (item (Blockx) of [squares v])> then\n                            set pen color to (#e1a91a)\n                        else\n                            if <(Layer) = ((item (Blockx) of [squares v]) - (1))> then\n                                set pen color to (#0000ff)\n                            else\n                                set pen color to (#dddede)\n                            end\n                        end\n                    end\n                    set [split v] to []\n                    if <[split squares v] contains (Blockx)?> then\n                        set [l v] to [1]\n                        repeat (length of [split squares v])\n                            if <(Blockx) = (item (l) of [split squares v])> then\n                                set [split v] to (item ((l) + (1)) of [split squares v])\n                            end\n                            change [l v] by (2)\n                        end\n                    end\n                    if <<([abs v] of (x position) ) < [190]> and <([abs v] of (y position) ) < [130]>> then\n                        if <(Split) = []> then\n                            Create Square (100)\n                        else\n                            Split Squares (100) (100)\n                        end\n                    else\n                        if <<([abs v] of (posy) ) < [230]> and <([abs v] of (posx) ) < [290]>> then\n                            if <([abs v] of (x position) ) < [190]> then\n                                if <(Split) = []> then\n                                    Create Rectangle (100) ((230) - ([abs v] of (posy) ))\n                                else\n                                    Split Squares (100) ((230) - ([abs v] of (posy) ))\n                                end\n                            else\n                                if <([abs v] of (y position) ) < [130]> then\n                                    if <(Split) = []> then\n                                        Create Rectangle ((290) - ([abs v] of (posx) )) (100)\n                                    else\n                                        Split Squares ((290) - ([abs v] of (posx) )) (100)\n                                    end\n                                else\n                                    if <(Split) = []> then\n                                        Create Rectangle ((290) - ([abs v] of (posx) )) ((230) - ([abs v] of (posy) ))\n                                    else\n                                        Split Squares ((290) - ([abs v] of (posx) )) ((230) - ([abs v] of (posy) ))\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n            change [posx v] by (-100)\n            set x to (posx)\n            set y to (posy)\n            change [blockx v] by (1)\n        end\n    else\n        change [blockx v] by ([sqrt v] of (length of [squares v]) )\n    end\n    change [posy v] by (-100)\n    set y to (posy)\nend\nif <(Gameover) = [0]> then\n    set [posy v] to (((([sqrt v] of (length of [squares v]) ) + (0.5)) * (50)) - (Scrolly))\n    set [posx v] to ((0) - (Scrollx))\n    set x to (posx)\n    set y to (posy)\n    set pen color to (#e81818)\n    if <<([abs v] of (x position) ) < [190]> and <([abs v] of (y position) ) < [155]>> then\n        Create Rectangle (100) (50)\n    else\n        if <<([abs v] of (posy) ) < [205]> and <([abs v] of (posx) ) < [290]>> then\n            if <([abs v] of (x position) ) < [190]> then\n                Create Rectangle (100) ((205) - ([abs v] of (posy) ))\n            else\n                if <([abs v] of (y position) ) < [155]> then\n                    Create Rectangle ((290) - ([abs v] of (posx) )) (50)\n                else\n                    Create Rectangle ((290) - ([abs v] of (posx) )) ((205) - ([abs v] of (posy) ))\n                end\n            end\n        end\n    end\nend\n\ndefine Create Square (size)\nset [myx v] to (x position)\nset [myy v] to (y position)\nset pen size to (1)\nchange x by ((size) / (2))\nchange y by ((size) / (2))\nset [distance v] to (size)\npen down\nrepeat ([ceiling v] of ((size) / (2)) )\n    change y by ((0) - (Distance))\n    change x by ((0) - (Distance))\n    change y by (Distance)\n    change x by (Distance)\n    change x by (-1)\n    change y by (-1)\n    change [distance v] by (-2)\n    set pen size to (2)\nend\npen up\ngo to x: (myx) y: (myy)\n\nwhen I receive [start v]\nset [lock? v] to [1]\nrepeat until <<(Lock?) = [0]> or <(Lock?) = [20]>>\n    if <key (any v) pressed?> then\n        change [lock? v] by (1)\n    else\n        set [lock? v] to [0]\n    end\nend\nforever\n    if <key (any v) pressed?> then\n        if <key (right arrow v) pressed?> then\n            change [xv v] by (2)\n        end\n        if <key (left arrow v) pressed?> then\n            change [xv v] by (-2)\n        end\n        if <key (up arrow v) pressed?> then\n            change [yv v] by (2)\n        end\n        if <key (down arrow v) pressed?> then\n            change [yv v] by (-2)\n        end\n    end\n    change [scrollx v] by (xv)\n    change [scrolly v] by (yv)\n    if <(Touching) = [1]> then\n        repeat until <(Touching) = [0]>\n            change [scrollx v] by (() - (xv))\n            change [scrolly v] by (() - (yv))\n        end\n        set [xv v] to [0]\n        set [yv v] to [0]\n    end\n    set [xv v] to ((xv) * (0.8))\n    set [yv v] to ((yv) * (0.8))\nend\n\nwhen [r v] key pressed\nRestart\nwait (1) seconds\nif <key (r v) pressed?> then\n    Reset\nend\n\ndefine Print\nPrint1\nif <(Gameover) = [0]> then\n    Print2\nend\n\ndefine Restart\nset [lock? v] to [0]\nset [gameover v] to [0]\nset [time v] to [0]\nset [layer v] to [1]\nset [scrollx v] to [0]\nif <<(Level) = [5]> or <(Level) = [7]>> then\n    set [scrolly v] to [0]\nelse\n    set [scrolly v] to [-30]\nend\nset [xv v] to [0]\nset [yv v] to [0]\n\nwhen [l v] key pressed\nif <<(username) = [Keyboard8]> or <(username) = [Keyboard8test]>> then\n    stop [other scripts in sprite v]\n    change [level v] by (1)\n    Restart\n    Analyze (item (Level) of [level data v]) Cut: [ ] (1)\n    delete (all) of [split squares v]\n    if <(Level) > [4]> then\n        Analyze (item (Level) of [splitdata v]) Cut: [ ] (2)\n    end\n    broadcast (start v)\nend\n\ndefine Check\nswitch costume to (costume1 v)\nset size to (100) %\nshow\nif <touching color (#e81717)?> then\n    if <(Level) < [7]> then\n        stop [other scripts in sprite v]\n        broadcast (levelup v)\n        stop [this script v]\n    else\n        stop [other scripts in sprite v]\n        Restart\n        Gameover\n        set [timer v] to (timer)\n        broadcast (gameover v)\n        stop [this script v]\n    end\nend\nif <touching color (#000000)?> then\n    stop [other scripts in sprite v]\n    broadcast (died v)\n    stop [this script v]\nend\nset size to (500) %\nif <<<touching color (#e1a91a)?> and <not <touching color (#5cb712)?>>> and <(Time) = [0]>> then\n    repeat until <touching color (#5cb712)?>\n        change [layer v] by (-1)\n        hide\n        Print1\n        go to x: (0) y: (0)\n        set pen size to (((((-1.5) * ((Time) * (Time))) + ((3) * (Time))) + (1)) * (20))\n        set pen color to (#cc0099)\n        pen down\n        pen up\n        switch costume to (costume1 v)\n        show\n        if <(Layer) < [1]> then\n            stop [this script v]\n        end\n    end\nend\nset pen size to (((((-1.5) * ((Time) * (Time))) + ((3) * (Time))) + (1)) * (20))\nset pen color to (#cc0099)\npen down\npen up\nswitch costume to (costume3 v)\nhide\n\ndefine Split Squares (width) (height)\nif <<(width) = [100]> and <(height) = [100]>> then\n    set [full? v] to [1]\nelse\n    set [full? v] to [0]\nend\nif <(width) > [50]> then\n    if <(posx) < [0]> then\n        change x by (25)\n    else\n        change x by (((width) - (50)) / (2))\n    end\nend\nif <(height) > [50]> then\n    if <(posy) < [0]> then\n        change y by (25)\n    else\n        change y by (((height) - (50)) / (2))\n    end\nend\nset [l v] to [1]\nPrint split square <(posx) < [0]> <(posy) < [0]> (width) (height) (1) (() - ((((width) - (50)) / (2)) + (25))) (0)\nPrint split square <(posx) > [0]> <(posy) < [0]> (width) (height) (2) (0) (() - ((((height) - (50)) / (2)) + (25)))\nPrint split square <(posx) > [0]> <(posy) > [0]> (width) (height) (3) ((((width) - (50)) / (2)) + (25)) (0)\nPrint split square <(posx) < [0]> <(posy) > [0]> (width) (height) (4) (0) ((((height) - (50)) / (2)) + (25))\n\ndefine Create Rectangle (x) (y)\nset [myx v] to (x position)\nset [myy v] to (y position)\nset pen size to (1)\nchange x by ((x) / (2))\nchange y by ((y) / (2))\nset [dx v] to (x)\nset [dy v] to (y)\npen down\nrepeat until <<(dx) < [0]> or <(dy) < [0]>>\n    change y by ((0) - (dy))\n    change x by ((0) - (dx))\n    change y by (dy)\n    change x by (dx)\n    change x by (-1)\n    change y by (-1)\n    change [dx v] by (-2)\n    change [dy v] by (-2)\n    set pen size to (2)\nend\npen up\ngo to x: (myx) y: (myy)\n\nwhen [k v] key pressed\nif <<(username) = [Keyboard8]> or <(username) = [Keyboard8test]>> then\n    stop [other scripts in sprite v]\n    change [level v] by (-1)\n    set [lives v] to [3]\n    Restart\n    Analyze (item (Level) of [level data v]) Cut: [ ] (1)\n    delete (all) of [split squares v]\n    if <(Level) > [4]> then\n        Analyze (item (Level) of [splitdata v]) Cut: [ ] (2)\n    end\n    broadcast (start v)\nend\n\nwhen I receive [thumbnail v]\nstop [other scripts in sprite v]\ndelete (all) of [split squares v]\ndelete (all) of [squares v]\nRestart\nset [scrolly v] to [0]\nset [layer v] to [2]\nset [gameover v] to [1]\nAnalyze (item (1) of [thumbnail v]) Cut: [ ] (1)\nPrint\ngo to x: (50) y: (-40)\nset pen size to (((((-1.5) * ((Time) * (Time))) + ((3) * (Time))) + (1)) * (20))\nset pen color to (#cc0099)\npen down\npen up\nswitch costume to (costume3 v)\nhide\n\nwhen I receive [start v]\nforever\n    wait (1) seconds\n    set [fps v] to (Frames)\n    set [frames v] to [0]\nend\n\nwhen I receive [levelup v]\nchange [level v] by (1)\nRestart\nAnalyze (item (Level) of [level data v]) Cut: [ ] (1)\ndelete (all) of [split squares v]\nif <(Level) > [4]> then\n    Analyze (item (Level) of [splitdata v]) Cut: [ ] (2)\nend\nbroadcast (start v)\n\nwhen I receive [start v]\nforever\n    if <key (space v) pressed?> then\n        set [time v] to [0]\n        repeat (5)\n            change [time v] by (0.1)\n            go to x: (0) y: (0)\n        end\n        change [layer v] by (1)\n        repeat (5)\n            change [time v] by (0.1)\n            go to x: (0) y: (0)\n        end\n        repeat (5)\n            change [time v] by (0.1)\n            go to x: (0) y: (0)\n        end\n        if <(LC) = [0 ]> then\n            change [layer v] by (-1)\n        end\n        repeat (5)\n            change [time v] by (0.1)\n            go to x: (0) y: (0)\n        end\n        wait (0.1) seconds\n        set [time v] to [0]\n    end\nend\n\ndefine Reset\ngo to x: (0) y: (0)\nswitch costume to (costume3 v)\nhide\nerase all\nset [level v] to [1]\nset [deaths v] to [0]\nset [timer v] to [0]\nreset timer\nRestart\nAnalyze (item (1) of [level data v]) Cut: [ ] (1)\ndelete (all) of [split squares v]\nbroadcast (start v)\nshow variable [fps v]\nshow variable [deaths v]\nshow variable [timer v]\nshow variable [level v]\n\ndefine Gameover\nset [gameover v] to [1]\ndelete (all) of [split squares v]\ndelete (all) of [squares v]\nrepeat (81)\n    add [1] to [squares v]\nend\nPrint\n\n@TextEngine\n\ndefine None\nset [cl v] to [1]\nset [length v] to [0]\nrepeat (length of (text))\n    set [code v] to ([\['letter:of:', \['readvariable', 'cl'\], \['getparam', 'text', 'r'\]\] v] of [textengine v])\n    if <(length of (code)) < [5]> then\n        change [length v] by ((10) * (s))\n    else\n        change [length v] by (((join (letter (3) of (code)) (letter (4) of (code))) + (3)) * (s))\n    end\n    change [cl v] by (1)\nend\n\ndefine DrawCharacter [] <>\nset [code v] to ([\['letter:of:', \['readvariable', 'cl'\], \['getparam', 'text', 'r'\]\] v] of [textengine v])\nset [length v] to (length of (code))\nif <(length) < [5]> then\n    set [width v] to ((10) * (spacing))\n    if <w> then\n        if <(cL) = (nextCL)> then\n            change [nextcl v] by (1)\n        else\n            if <((cX) + (width)) > [235]> then\n                set [cx v] to [-235]\n                change [cy v] by (nextY)\n            end\n        end\n    end\n    change [cx v] by (width)\nelse\n    set [width v] to (((join (letter (3) of (code)) (letter (4) of (code))) + (3)) * (spacing))\n    if <w> then\n        if <(cL) = (nextCL)> then\n            Wrap (text)\n        else\n            if <((cX) + (width)) > [235]> then\n                set [cx v] to [-235]\n                change [cy v] by (nextY)\n            end\n        end\n    end\n    set x to (cX)\n    change [cx v] by (width)\n    set [pos v] to [5]\n    set [height v] to [0]\n    repeat until <(pos) > (length)>\n        set y to (cY)\n        set [nexth v] to ((height) + (19))\n        set [draw? v] to (letter (pos) of (code))\n        change [pos v] by (1)\n        repeat until <(height) > (nextH)>\n            set [repeat v] to (join (letter (pos) of (code)) (letter ((pos) + (1)) of (code)))\n            change [height v] by (repeat)\n            change [pos v] by (2)\n            if <(draw?) = [0]> then\n                set [draw? v] to [1]\n            else\n                pen down\n                set [draw? v] to [0]\n            end\n            if <(italics) = [0]> then\n                change y by (((() - (repeat)) + (1)) * (size))\n                pen up\n                change y by (() - (size))\n            else\n                go to x: ((x position) - (((repeat) - (1)) * (i/20))) y: ((y position) - (((repeat) - (1)) * (size)))\n                pen up\n                go to x: ((x position) - (i/20)) y: ((y position) - (size))\n            end\n        end\n        change x by ((size) + (italics))\n    end\nend\n\ndefine None\nset [size v] to ((s) * (2))\nset [nexty v] to ((size) * (-25))\nset [spacing v] to ((size) * (space))\nset [italics v] to ((i) * (size))\nset [i/20 v] to ((italics) / (20))\nif <(a) = [r]> then\n    FindLength (text) (spacing)\n    set [cx v] to (((x) - (length)) + (italics))\nelse\n    if <(a) = [c]> then\n        FindLength (text) (spacing)\n        set [cx v] to (((x) - ((length) / (2))) + (italics))\n    else\n        set [cx v] to ((x) + (italics))\n    end\nend\nset [cy v] to ((y) + ((14) * (size)))\nset [cl v] to [1]\nset [nextcl v] to [1]\nset pen size to (round ((size) * (t)))\nrepeat (length of (text))\n    set [code v] to ([\['letter:of:', \['readvariable', 'cl'\], \['getparam', 'text', 'r'\]\] v] of [textengine v])\n    set [length v] to (length of (code))\n    if <(length) < [5]> then\n        set [width v] to ((10) * (spacing))\n        if <w> then\n            if <(cL) = (nextCL)> then\n                change [nextcl v] by (1)\n            else\n                if <((cX) + (width)) > [235]> then\n                    set [cx v] to [-235]\n                    change [cy v] by (nextY)\n                end\n            end\n        end\n        change [cx v] by (width)\n    else\n        set [width v] to (((join (letter (3) of (code)) (letter (4) of (code))) + (3)) * (spacing))\n        if <w> then\n            if <(cL) = (nextCL)> then\n                Wrap (text)\n            else\n                if <((cX) + (width)) > [235]> then\n                    set [cx v] to [-235]\n                    change [cy v] by (nextY)\n                end\n            end\n        end\n        set x to (cX)\n        change [cx v] by (width)\n        set [pos v] to [5]\n        set [height v] to [0]\n        repeat until <(pos) > (length)>\n            set y to (cY)\n            set [nexth v] to ((height) + (19))\n            set [draw? v] to (letter (pos) of (code))\n            change [pos v] by (1)\n            repeat until <(height) > (nextH)>\n                set [repeat v] to (join (letter (pos) of (code)) (letter ((pos) + (1)) of (code)))\n                change [height v] by (repeat)\n                change [pos v] by (2)\n                if <(draw?) = [0]> then\n                    set [draw? v] to [1]\n                else\n                    pen down\n                    set [draw? v] to [0]\n                end\n                if <(italics) = [0]> then\n                    change y by (((() - (repeat)) + (1)) * (size))\n                    pen up\n                    change y by (() - (size))\n                else\n                    go to x: ((x position) - (((repeat) - (1)) * (i/20))) y: ((y position) - (((repeat) - (1)) * (size)))\n                    pen up\n                    go to x: ((x position) - (i/20)) y: ((y position) - (size))\n                end\n            end\n            change x by ((size) + (italics))\n        end\n    end\n    change [cl v] by (1)\nend\n\ndefine Set Font to %m.list\nif <not <(font) = (font)>> then\n    set [cl v] to [1]\n    repeat (length of (characters))\n        set [\['letter:of:', \['readvariable', 'cl'\], \['readvariable', 'characters'\]\] v] to (item (cL) of [\['getparam', 'font', 'r'\] v])\n        change [cl v] by (1)\n    end\n    set [font v] to (font)\nend\n\nwhen I receive [gameover v]\nset [score v] to ((round ((10) * ((100) / (((([sqrt v] of ((Timer) / (60)) ) - (1)) + ([sqrt v] of ((Deaths) / (2)) )) + (1))))) / (10))\nColor: red (255) green (255) blue (255) alpha (255)\nWrite [You Win!] at (-150) (100) size (2) thickness (2) wrap?  spacing (1) alignment [] italics (0)\nWrite (join [Time: ] (round (Timer))) at (-150) (50) size (1) thickness (2) wrap?  spacing (1) alignment [] italics (0)\nWrite (join [Deaths: ] (Deaths)) at (-150) (0) size (1) thickness (2) wrap?  spacing (1) alignment [] italics (0)\nWrite (join [Score: ] (Score)) at (-150) (-50) size (1) thickness (2) wrap?  spacing (1) alignment [] italics (0)\nif <(Score) > (☁ Highscore)> then\n    set [☁ highscore v] to (Score)\nend\nWrite (join [Highscore: ] (☁ Highscore)) at (-150) (-100) size (1) thickness (2) wrap?  spacing (1) alignment [] italics (0)\nhide variable [fps v]\nhide variable [deaths v]\nhide variable [timer v]\nhide variable [level v]\nstop [all v]\n\nwhen [x v] key pressed\nif <<(username) = [Keyboard8]> or <(username) = [Keyboard8test]>> then\n    hide variable [fps v]\n    hide variable [level v]\n    hide variable [timer v]\n    hide variable [deaths v]\n    erase all\n    broadcast (Thumbnail v)\n    Set Font to %m.list\n    wait (0.1) seconds\n    Color: red (255) green (255) blue (255) alpha (255)\n    Write [Layers] at (-110) (100) size (2) thickness (2) wrap?  spacing (1) alignment [] italics (0)\n    Write [A 99% Pen "Platformer"] at (-175) (50) size (0.8) thickness (2) wrap?  spacing (1) alignment [] italics (0)\n    Write [Keyboard8] at (115) (-170) size (0.6) thickness (2.5) wrap?  spacing (1) alignment [] italics (5)\nend\nstop [all v]\n\ndefine None\nset pen color to (((((((round (a)) * (256)) + (round (r))) * (256)) + (round (g))) * (256)) + (round (b)))\n\ndefine Wrap []\nset [nextcx v] to ((cX) + (width))\nset [wrap? v] to [0]\nrepeat until <<(letter (nextCL) of (text)) = [ ]> or <(nextCL) > (length of (text))>>\n    set [nextcode v] to ([\['letter:of:', \['readvariable', 'nextcl'\], \['getparam', 'text', 'r'\]\] v] of [textengine v])\n    change [nextcx v] by (((join (letter (3) of (nextCode)) (letter (4) of (nextCode))) + (3)) * (spacing))\n    if <<(nextCx) > [240]> and <(wrap?) = [0]>> then\n        set [cx v] to [-235]\n        change [cy v] by (nextY)\n        set [wrap? v] to [1]\n    end\n    change [nextcl v] by (1)\nend\n\n
Arrow Keys to move, space to jump (Change layer). \nGreen squares are on your level, Blue is a level above, Gray is > 1 level above, Orange is below (You can fall down levels if you are only touching orange).  \nRed is your goal, Black kills you if you are not jumping.\nPress R key to restart the level. \nHold R key for 1 second to restart the game.\n7 total levels (They get progressively harder)\nTry to beat the high score (Least amount of deaths and fastest completion time.)\nMy Highscore: Time: 213, Deaths: 0 Score: 53.1\nIs this too easy for you? Go and try the Alpha Version remix (You only get 3 lives per level and the hitbox is bigger (trust me, it makes a difference)\nIf you want to remix and design your own level, let me know and I will help. It's not that hard!\nLove, Favorite, Comment, Remix, and Follow please!\n\nLevel Summary\n1- Just press the space bar and up arrow!\n2- Keep on jumping!\n3- Don't touch the black or be fooled by the gray center!\n4- Go around in a spiral, but be careful of the black!\n5- Be precise in hitting the smaller rectangles!\n6- Its getting trickier, you have to be accurate to hit those small squares over long distances!\n7- The final challenge! This will require incredible precision, and a bit of luck and cleverness to complete! Only true masters can beat this level!