Rotation: A 100% pen platformer no sound
@Stage\n\nwhen flag clicked\nforever\n    play sound [ParagonX9 - Chaoz Airflow.mp3 v] until done\nend\n\nwhen I receive [music v]\nforever\n    play sound [ParagonX9 - Chaoz Airflow.mp3 v] until done\nend\n\n@Render\n\ndefine Render\nif <(Render#) = [2]> then\n    erase all\nend\nset [loop# v] to [1]\nif <not <(Collided?) = [4]>> then\n    set [mysize v] to [15]\n    if <(Render#) = [1]> then\n        set [collided? v] to [0]\n    end\nelse\n    if <(Render#) = [2]> then\n        change [mysize v] by (2)\n    end\nend\nrepeat ((length of [lines v]) / (5))\n    FindLinePoints (Loop#) (CamX) (CamY)\n    DrawtoEdge (type)\n    if <(Render#) = [2]> then\n        DrawParticles (Loop#)\n    end\n    change [loop# v] by (5)\nend\nset [targetdir v] to (FutureDir)\nif <(Render#) = [2]> then\n    change [glow v] by (DirTime)\n    if <(Glow) < [30]> then\n        set [dirtime v] to [3]\n        set [glow v] to [30]\n    else\n        if <(Glow) > [120]> then\n            set [dirtime v] to [-3]\n            set [glow v] to [120]\n        end\n    end\n    change [size v] by (DirSize)\n    if <(Size) < [30]> then\n        set [dirsize v] to [1]\n        set [size v] to [30]\n        repeat (2)\n            Add Particle\n        end\n    else\n        if <(Size) > [32]> then\n            set [dirsize v] to [-1]\n            set [size v] to [32]\n            repeat (2)\n                Add Particle\n            end\n        end\n    end\n    change [glowsize v] by (GlowSizeDir)\n    if <(GlowSize) > [50]> then\n        set [glowsize v] to [50]\n        set [glowsizedir v] to [-4]\n    else\n        if <(GlowSize) < [30]> then\n            set [glowsize v] to [30]\n            set [glowsizedir v] to [4]\n        end\n    end\n    if <not <<(round (MyX)) = (TargetX)> and <(round (MyY)) = (TargetY)>>> then\n        DrawPlayer\n    else\n        change [level v] by (1)\n        Reset (level)\n        set [leveltime v] to (timer)\n    end\n    if <(MyX) < ((MinX) - (400))> then\n        Reset (level)\n    else\n        if <(MyX) > ((MaxX) + (400))> then\n            Reset (level)\n        end\n    end\n    if <(MyY) < ((MinY) - (400))> then\n        Reset (level)\n    else\n        if <(MyY) > ((MaxY) + (400))> then\n            Reset (level)\n        end\n    end\nend\n\ndefine None\nif <not <(type) = [2]>> then\n    if <not <<<(X1) > [240]> and <(X2) > [240]>> or <<(X1) < [-240]> and <(X2) < [-240]>>>> then\n        if <not <<<(Y1) > [180]> and <(Y2) > [180]>> or <<(Y1) < [-180]> and <(Y2) < [-180]>>>> then\n            if <(TargetDir) = (Dir)> then\n                if <([floor v] of (X1) ) = ([floor v] of (X2) )> then\n                    Collide (0) <(Y1) > (Y2)> (Dir)\n                else\n                    Collide (1) <(X1) > (X2)> (Dir)\n                end\n            else\n                if <not <((Dir) mod (90)) = [0]>> then\n                    Cut to Edge\n                end\n            end\n            if <(Render#) = [2]> then\n                Draw (X1) (Y1) (X2) (Y2) (type)\n            end\n        end\n    end\nelse\n    if <not <<([abs v] of (X1) ) > [240]> or <([abs v] of (Y1) ) > [180]>>> then\n        if <(Render#) = [2]> then\n            Draw (X1) (Y1) (X2) (Y2) (2)\n        end\n    end\nend\n\ndefine ReadKeys\nif <<([abs v] of ((MyY) - (TargetY)) ) < [30]> and <([abs v] of ((MyX) - (TargetX)) ) < [30]>> then\n    change [myx v] by (((TargetX) - (MyX)) / (8))\n    change [myy v] by (((TargetY) - (MyY)) / (8))\nelse\n    if <(Render#) = [1]> then\n        if <key (right arrow v) pressed?> then\n            change [velx v] by (1)\n        end\n        if <key (left arrow v) pressed?> then\n            change [velx v] by (-1)\n        end\n        set [velx v] to ((VelX) * (0.9))\n        change [vely v] by (-1)\n        if <(Collided?) = [1]> then\n            if <key (up arrow v) pressed?> then\n                set [vely v] to [15]\n            end\n        else\n            if <(Collided?) = [3]> then\n                set [vely v] to [20]\n            end\n        end\n    end\n    Move\nend\nif <(Render#) = [1]> then\n    set [dircos v] to ([cos v] of (Dir) )\n    set [dirsin v] to ([sin v] of (Dir) )\nend\nFindPlayerLocation\n\ndefine None\nif <(dir) = [0]> then\n    if <greater?> then\n        if <<((PlayerY) - (15)) < (Y1)> and <((PlayerY) + (15)) > (Y2)>> then\n            if <([abs v] of ((PlayerX) - (X1)) ) < [15]> then\n                if <(Render#) = [1]> then\n                    MoveBack (0) (camdir)\n                else\n                    MoveBack (3) (camdir)\n                end\n            end\n        end\n    else\n        if <<((PlayerY) - (15)) < (Y2)> and <((PlayerY) + (15)) > (Y1)>> then\n            if <([abs v] of ((PlayerX) - (X1)) ) < [15]> then\n                if <(Render#) = [1]> then\n                    MoveBack (0) (camdir)\n                else\n                    MoveBack (3) (camdir)\n                end\n            end\n        end\n    end\nelse\n    if <greater?> then\n        if <<((PlayerX) - (15)) < (X1)> and <((PlayerX) + (15)) > (X2)>> then\n            if <([abs v] of ((PlayerY) - (Y1)) ) < [15]> then\n                if <(Render#) = [2]> then\n                    MoveBack (1) (camdir)\n                else\n                    MoveBack (2) (camdir)\n                end\n            end\n        end\n    else\n        if <<((PlayerX) - (15)) < (X2)> and <((PlayerX) + (15)) > (X1)>> then\n            if <([abs v] of ((PlayerY) - (Y1)) ) < [15]> then\n                if <(Render#) = [2]> then\n                    MoveBack (1) (camdir)\n                else\n                    MoveBack (2) (camdir)\n                end\n            end\n        end\n    end\nend\nFindPlayerLocation\n\ndefine DrawPlayer\npen up\nset pen size to ((MySize) * (2))\nif <not <(Collided?) = [4]>> then\n    DrawTrail\nend\ngo to x: (PlayerX) y: (PlayerY)\nSet Pen Color to R: (0) G: (0) B: (100) Opacity ((256) - (((MySize) - (15)) * (6)))\npen down\npen up\nSet Pen Color to R: (0) G: (0) B: (200) Opacity ((256) - (((MySize) - (15)) * (6)))\nset pen size to (round ((MySize) * (1.3)))\npen down\npen up\nAddTrail\n\ndefine None\nset [type v] to (item (number) of [lines v])\nif <not <(type) = [2]>> then\n    set [x1 v] to ((item ((number) + (1)) of [lines v]) - (camx))\n    set [y1 v] to ((item ((number) + (2)) of [lines v]) - (camy))\n    set [x2 v] to ((item ((number) + (3)) of [lines v]) - (camx))\n    set [y2 v] to ((item ((number) + (4)) of [lines v]) - (camy))\n    Rotate (DirCos) (DirSin) (1)\nelse\n    set [x1 v] to ((item ((number) + (1)) of [lines v]) - (camx))\n    set [y1 v] to ((item ((number) + (2)) of [lines v]) - (camy))\n    Rotate (DirCos) (DirSin) (2)\nend\n\ndefine None\nset pen color to ((((r) * (65536)) + (((g) * (256)) + (b))) + ((o) * (16777216)))\n\ndefine None\nif <(dir) = [1]> then\n    if <(camdir) = [0]> then\n        change [myy v] by (() - (VelY))\n        Collided? (1)\n        set [vely v] to [0]\n    else\n        if <(camdir) = [90]> then\n            change [myx v] by (() - (VelY))\n            Collided? (1)\n            set [vely v] to [0]\n        else\n            if <(camdir) = [180]> then\n                change [myy v] by (VelY)\n                Collided? (1)\n                set [vely v] to [0]\n            else\n                change [myx v] by (VelY)\n                Collided? (1)\n                set [vely v] to [0]\n            end\n        end\n    end\nelse\n    if <(dir) = [0]> then\n        if <(camdir) = [0]> then\n            change [myx v] by (() - (VelX))\n            Collided? (0)\n            set [velx v] to [0]\n        else\n            if <(camdir) = [90]> then\n                change [myy v] by (VelX)\n                Collided? (0)\n                set [velx v] to [0]\n            else\n                if <(camdir) = [180]> then\n                    change [myx v] by (VelX)\n                    Collided? (0)\n                    set [velx v] to [0]\n                else\n                    change [myy v] by (() - (VelX))\n                    Collided? (0)\n                    set [velx v] to [0]\n                end\n            end\n        end\n    else\n        if <(dir) = [2]> then\n            if <(camdir) = [0]> then\n                change [myx v] by (() - (VelX))\n                if <(type) = [5]> then\n                    set [collided? v] to [4]\n                end\n                set [velx v] to [0]\n            else\n                if <(camdir) = [90]> then\n                    change [myy v] by (VelX)\n                    if <(type) = [5]> then\n                        set [collided? v] to [4]\n                    end\n                    set [velx v] to [0]\n                else\n                    if <(camdir) = [180]> then\n                        change [myx v] by (VelX)\n                        if <(type) = [5]> then\n                            set [collided? v] to [4]\n                        end\n                        set [velx v] to [0]\n                    else\n                        change [myy v] by (() - (VelX))\n                        if <(type) = [5]> then\n                            set [collided? v] to [4]\n                        end\n                        set [velx v] to [0]\n                    end\n                end\n            end\n        else\n            if <(camdir) = [0]> then\n                change [myy v] by (() - (VelY))\n                if <(type) = [5]> then\n                    set [collided? v] to [4]\n                end\n                set [vely v] to [0]\n            else\n                if <(camdir) = [90]> then\n                    change [myx v] by (() - (VelY))\n                    if <(type) = [5]> then\n                        set [collided? v] to [4]\n                    end\n                    set [vely v] to [0]\n                else\n                    if <(camdir) = [180]> then\n                        change [myy v] by (VelY)\n                        if <(type) = [5]> then\n                            set [collided? v] to [4]\n                        end\n                        set [vely v] to [0]\n                    else\n                        change [myx v] by (VelY)\n                        if <(type) = [5]> then\n                            set [collided? v] to [4]\n                        end\n                        set [vely v] to [0]\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine DrawTrail\nset [trail# v] to [1]\nrepeat ([floor v] of ((length of [trail v]) / (2)) )\n    Set Pen Color to R: (0) G: (0) B: (200) Opacity (round ((256) / ((7) - (Trail#))))\n    set [x1 v] to ((item (((Trail#) * (2)) - (1)) of [trail v]) - (CamX))\n    set [y1 v] to ((item (((Trail#) * (2)) - (0)) of [trail v]) - (CamY))\n    Rotate (DirCos) (DirSin) (2)\n    go to x: (X1) y: (Y1)\n    pen down\n    pen up\n    change [trail# v] by (1)\nend\n\ndefine None\nResetData\nResetLists\nif <(level) = [1]> then\n    Level1\nelse\n    if <(level) = [2]> then\n        Level2\n    else\n        if <(level) = [2]> then\n            Level2\n        else\n            if <(level) = [3]> then\n                Level5\n            else\n                if <(level) = [4]> then\n                    Level3\n                else\n                    if <(level) = [5]> then\n                        Level4\n                    else\n                        if <(level) = [6]> then\n                            level6\n                        else\n                            if <(level) = [7]> then\n                                Level7\n                            else\n                                Level8\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine FindPlayerLocation\nset [playerx v] to ((MyX) - (CamX))\nset [playery v] to ((MyY) - (CamY))\nRotate (DirCos) (DirSin) (0)\n\ndefine None\nif <(type) = [1]> then\n    Rotate (angle1) (angle2) (X1) (Y1)\n    set [x1 v] to (RotatedX)\n    set [y1 v] to (RotatedY)\n    Rotate (angle1) (angle2) (X2) (Y2)\n    set [x2 v] to (RotatedX)\n    set [y2 v] to (RotatedY)\nelse\n    if <(type) = [0]> then\n        Rotate (angle1) (angle2) (PlayerX) (PlayerY)\n        set [playerx v] to (RotatedX)\n        set [playery v] to (RotatedY)\n    else\n        Rotate (angle1) (angle2) (X1) (Y1)\n        set [x1 v] to (RotatedX)\n        set [y1 v] to (RotatedY)\n    end\nend\n\ndefine None\nif <not <(type) = [4]>> then\n    if <(Collided?) < [2]> then\n        if <(type) = [5]> then\n            set [collided? v] to [4]\n        else\n            if <(side) = [0]> then\n                if <(VelX) > [0]> then\n                    set [futuredir v] to (((Dir) + (270)) mod (360))\n                    set [collided? v] to [2]\n                else\n                    set [futuredir v] to (((Dir) + (90)) mod (360))\n                    set [collided? v] to [2]\n                end\n            else\n                if <(VelY) > [0]> then\n                    set [futuredir v] to (((Dir) + (180)) mod (360))\n                    set [collided? v] to [2]\n                else\n                    if <(type) = [3]> then\n                        set [collided? v] to [3]\n                    else\n                        set [collided? v] to [1]\n                    end\n                end\n            end\n        end\n    end\nelse\n    if <(side) = [1]> then\n        if <(VelY) < [0]> then\n            set [collided? v] to [1]\n        end\n    end\nend\n\ndefine None\npen up\nif <(type) = [1]> then\n    set pen size to (20)\n    Set Pen Color to R: (Glow) G: (0) B: (Glow) Opacity (0)\n    go to x: (x1) y: (y1)\n    pen down\n    go to x: (x2) y: (y2)\n    pen up\n    set pen size to (5)\n    Set Pen Color to R: (200) G: (0) B: (160) Opacity (0)\n    go to x: (x1) y: (y1)\n    pen down\n    go to x: (x2) y: (y2)\n    pen up\nelse\n    if <(type) = [2]> then\n        set pen size to ((Size) + (10))\n        Set Pen Color to R: (0) G: (100) B: (0) Opacity (0)\n        go to x: (x1) y: (y1)\n        pen down\n        pen up\n        set pen size to (Size)\n        Set Pen Color to R: (0) G: (255) B: (0) Opacity (0)\n        go to x: (x1) y: (y1)\n        pen down\n        pen up\n    else\n        if <(type) = [3]> then\n            if <(GlowSize) > [40]> then\n                set pen size to (((GlowSize) mod (40)) + (15))\n            else\n                set pen size to (15)\n            end\n            Set Pen Color to R: (255) G: (200) B: (0) Opacity (0)\n            go to x: (x1) y: (y1)\n            pen down\n            go to x: (x2) y: (y2)\n            pen up\n            if <(GlowSize) > [40]> then\n                set pen size to (((GlowSize) mod (40)) + (10))\n            else\n                set pen size to (10)\n            end\n            Set Pen Color to R: (0) G: (0) B: (0) Opacity (0)\n            go to x: (x1) y: (y1)\n            pen down\n            go to x: (x2) y: (y2)\n            pen up\n            set pen size to (5)\n            Set Pen Color to R: (255) G: (255) B: (0) Opacity (0)\n            go to x: (x1) y: (y1)\n            pen down\n            go to x: (x2) y: (y2)\n            pen up\n        else\n            if <(type) = [4]> then\n                set pen size to (5)\n                Set Pen Color to R: (200) G: (0) B: (160) Opacity (0)\n                go to x: (x1) y: (y1)\n                pen down\n                go to x: (x2) y: (y2)\n                pen up\n            else\n                if <(type) = [5]> then\n                    set pen size to (20)\n                    Set Pen Color to R: ((Glow) + (20)) G: (0) B: (0) Opacity (0)\n                    go to x: (x1) y: (y1)\n                    pen down\n                    go to x: (x2) y: (y2)\n                    pen up\n                    set pen size to (5)\n                    Set Pen Color to R: (255) G: (0) B: (0) Opacity (0)\n                    go to x: (x1) y: (y1)\n                    pen down\n                    go to x: (x2) y: (y2)\n                    pen up\n                else\n                end\n            end\n        end\n    end\nend\n\ndefine Cut to Edge\nif <<([abs v] of (X1) ) > [240]> or <([abs v] of (X2) ) > [240]>> then\n    if <(X1) > [240]> then\n        set [xdist v] to ((X1) - (X2))\n        set [ydist v] to ((Y1) - (Y2))\n        set [y1 v] to ((Y2) + ((((240) - (X2)) / (XDist)) * (YDist)))\n        set [x1 v] to [240]\n        if <(X2) < [-240]> then\n            set [xdist v] to ((X1) - (X2))\n            set [ydist v] to ((Y1) - (Y2))\n            set [y2 v] to ((Y1) - ((((X1) - (-240)) / (XDist)) * (YDist)))\n            set [x2 v] to [-240]\n        end\n    else\n        if <(X1) < [-240]> then\n            set [xdist v] to ((X1) - (X2))\n            set [ydist v] to ((Y1) - (Y2))\n            set [y1 v] to ((Y2) + ((((-240) - (X2)) / (XDist)) * (YDist)))\n            set [x1 v] to [-240]\n            if <(X2) > [240]> then\n                set [xdist v] to ((X1) - (X2))\n                set [ydist v] to ((Y1) - (Y2))\n                set [y2 v] to ((Y1) - ((((X1) - (240)) / (XDist)) * (YDist)))\n                set [x2 v] to [240]\n            end\n        else\n            if <(X2) > [240]> then\n                set [xdist v] to ((X1) - (X2))\n                set [ydist v] to ((Y1) - (Y2))\n                set [y2 v] to ((Y1) - ((((X1) - (240)) / (XDist)) * (YDist)))\n                set [x2 v] to [240]\n            else\n                if <(X2) < [-240]> then\n                    set [xdist v] to ((X1) - (X2))\n                    set [ydist v] to ((Y1) - (Y2))\n                    set [y2 v] to ((Y1) - ((((X1) - (-240)) / (XDist)) * (YDist)))\n                    set [x2 v] to [-240]\n                end\n            end\n        end\n    end\nend\nif <<([abs v] of (Y1) ) > [180]> or <([abs v] of (Y2) ) > [180]>> then\n    if <(Y1) > [180]> then\n        set [xdist v] to ((X1) - (X2))\n        set [ydist v] to ((Y1) - (Y2))\n        set [x1 v] to ((X2) + ((((180) - (Y2)) / (YDist)) * (XDist)))\n        set [y1 v] to [180]\n        if <(Y2) < [-180]> then\n            set [xdist v] to ((X1) - (X2))\n            set [ydist v] to ((Y1) - (Y2))\n            set [x2 v] to ((X1) - ((((Y1) - (-180)) / (YDist)) * (XDist)))\n            set [y2 v] to [-180]\n        end\n    else\n        if <(Y1) < [-180]> then\n            set [xdist v] to ((X1) - (X2))\n            set [ydist v] to ((Y1) - (Y2))\n            set [x1 v] to ((X2) + ((((-180) - (Y2)) / (YDist)) * (XDist)))\n            set [y1 v] to [-180]\n            if <(Y2) > [180]> then\n                set [xdist v] to ((X1) - (X2))\n                set [ydist v] to ((Y1) - (Y2))\n                set [x2 v] to ((X1) - ((((Y1) - (180)) / (YDist)) * (XDist)))\n                set [y2 v] to [180]\n            end\n        else\n            if <(Y2) > [180]> then\n                set [xdist v] to ((X1) - (X2))\n                set [ydist v] to ((Y1) - (Y2))\n                set [x2 v] to ((X1) - ((((Y1) - (180)) / (YDist)) * (XDist)))\n                set [y2 v] to [180]\n            else\n                if <(Y2) < [-180]> then\n                    set [xdist v] to ((X1) - (X2))\n                    set [ydist v] to ((Y1) - (Y2))\n                    set [x2 v] to ((X1) - ((((Y1) - (-180)) / (YDist)) * (XDist)))\n                    set [y2 v] to [-180]\n                end\n            end\n        end\n    end\nend\n\ndefine Add Particle\nset [x v] to (pick random (-50) to (50))\nif <(pick random (0) to (1)) = [0]> then\n    set [y v] to (() - ([sqrt v] of ((2500) - ((X) * (X))) ))\nelse\n    set [y v] to ([sqrt v] of ((2500) - ((X) * (X))) )\nend\nrepeat (2)\n    add (X) to [particles v]\n    add (Y) to [particles v]\nend\nadd [] to [particles v]\n\ndefine None\nif <(number) < (length of [particles v])> then\n    set [x1 v] to (((item (number) of [particles v]) + (TargetX)) - (CamX))\n    set [y1 v] to (((item ((number) + (1)) of [particles v]) + (TargetY)) - (CamY))\n    Rotate (DirCos) (DirSin) (2)\n    if <not <<([abs v] of (X1) ) > [240]> or <([abs v] of (Y1) ) > [180]>>> then\n        pen up\n        Set Pen Color to R: (0) G: (255) B: (0) Opacity (0)\n        set pen size to (5)\n        go to x: (X1) y: (Y1)\n        pen down\n        pen up\n    end\n    replace item (number) of [particles v] with ((item ((number) + (0)) of [particles v]) - ((item ((number) + (2)) of [particles v]) / (10)))\n    replace item ((number) + (1)) of [particles v] with ((item ((number) + (1)) of [particles v]) - ((item ((number) + (3)) of [particles v]) / (10)))\n    if <<(round ([abs v] of (item (number) of [particles v]) )) < [20]> and <(round ([abs v] of (item ((number) + (1)) of [particles v]) )) < [20]>> then\n        repeat (5)\n            delete (number) of [particles v]\n        end\n    end\nend\n\ndefine None\nadd (type) to [lines v]\nadd (x1) to [lines v]\nadd (y1) to [lines v]\nadd (x2) to [lines v]\nadd (y2) to [lines v]\nif <(type) = [2]> then\n    set [targetx v] to (x1)\n    set [targety v] to (y1)\nend\nif <(x1) < (MinX)> then\n    set [minx v] to (x1)\nelse\n    if <(x1) > (MaxX)> then\n        set [maxx v] to (x1)\n    end\nend\nif <(x2) < (MinX)> then\n    set [minx v] to (x2)\nelse\n    if <(x2) > (MaxX)> then\n        set [maxx v] to (x2)\n    end\nend\nif <(y1) < (MinY)> then\n    set [miny v] to (y1)\nelse\n    if <(y1) > (MaxY)> then\n        set [maxy v] to (y1)\n    end\nend\nif <(y2) < (MinY)> then\n    set [miny v] to (y2)\nelse\n    if <(y2) > (MaxY)> then\n        set [maxy v] to (y2)\n    end\nend\n\nwhen flag clicked\nset [stoptime v] to ((timer) + (1000))\nset [stop key pressed? v] to [0]\nset [leveltime v] to [6]\nset [level v] to [1]\nReset (level)\nforever\n    set [stoptime v] to ((timer) + (0.3))\n    if <(timer) < [3]> then\n        broadcast (Spidertest v)\n    else\n        if <(timer) < [6]> then\n            broadcast (Title v)\n        else\n            if <(level) < [9]> then\n                if <(MySize) > [55]> then\n                    Reset (level)\n                end\n                RenderTwice\n                PrintLevelThings\n            else\n                broadcast (finish v)\n            end\n        end\n    end\n    set [fps v] to ((1) / ((timer) - ((StopTime) - (0.3))))\nend\n\nwhen [timer v] > (StopTime)\n\ndefine AddTrail\nadd (MyX) to [trail v]\nadd (MyY) to [trail v]\nif <(length of [trail v]) > [10]> then\n    repeat (2)\n        delete (1) of [trail v]\n    end\nend\n\ndefine RenderTwice\nset [render# v] to [1]\nset [rotating? v] to [0]\nrepeat (2)\n    if <not <(Collided?) = [4]>> then\n        ReadKeys\n    end\n    Render\n    change [render# v] by (1)\nend\n\ndefine Move\nif <(Dir) = (TargetDir)> then\n    if <(Rotating?) = [0]> then\n        if <(Render#) = [1]> then\n            if <<(Dir) < [0]> or <(Dir) > [359]>> then\n                set [dir v] to ((Dir) mod (360))\n                set [targetdir v] to (Dir)\n                set [futuredir v] to (Dir)\n            end\n            if <(Dir) = [0]> then\n                change [myx v] by (VelX)\n            else\n                if <(Dir) = [270]> then\n                    change [myy v] by (VelX)\n                else\n                    if <(Dir) = [90]> then\n                        change [myy v] by (() - (VelX))\n                    else\n                        if <(Dir) = [180]> then\n                            change [myx v] by (() - (VelX))\n                        else\n                            set [velx v] to [0]\n                            set [vely v] to [0]\n                        end\n                    end\n                end\n            end\n        else\n            if <(Dir) = [0]> then\n                change [myy v] by (VelY)\n            else\n                if <(Dir) = [270]> then\n                    change [myx v] by (() - (VelY))\n                else\n                    if <(Dir) = [90]> then\n                        change [myx v] by (VelY)\n                    else\n                        if <(Dir) = [180]> then\n                            change [myy v] by (() - (VelY))\n                        else\n                            set [velx v] to [0]\n                            set [vely v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nelse\n    if <(Render#) = [1]> then\n        set [rotating? v] to [1]\n        set [velx v] to [0]\n        set [vely v] to [0]\n        if <<(Dir) = [0]> and <(TargetDir) = [270]>> then\n            set [targetdir v] to [-90]\n            set [futuredir v] to [-90]\n        else\n            if <<(Dir) = [270]> and <(TargetDir) = [0]>> then\n                set [targetdir v] to [360]\n                set [futuredir v] to [360]\n            end\n        end\n        if <(TargetDir) > (Dir)> then\n            change [dir v] by (6)\n        else\n            change [dir v] by (-6)\n        end\n    end\nend\nif <(Render#) = [2]> then\n    if <(VelY) > [-15]> then\n        change [camx v] by (((MyX) - (CamX)) / (10))\n        change [camy v] by (((MyY) - (CamY)) / (10))\n    else\n        if <((Dir) mod (180)) = [0]> then\n            change [camx v] by (((MyX) - (CamX)) / (10))\n            change [camy v] by (((MyY) - (CamY)) / ([floor v] of ((100) / ([abs v] of (VelY) )) ))\n        else\n            change [camx v] by (((MyX) - (CamX)) / ([floor v] of ((100) / ([abs v] of (VelY) )) ))\n            change [camy v] by (((MyY) - (CamY)) / (10))\n        end\n    end\nend\n\ndefine ResetData\nset [targetdir v] to [0]\nset [collided? v] to [0]\nset [futuredir v] to [0]\nset [dir v] to [0]\nset [myx v] to [0]\nset [myy v] to [0.1]\nset [camx v] to [0]\nset [camy v] to [0]\nset [velx v] to [0]\nset [vely v] to [0]\nset [glow v] to [30]\nset [dirtime v] to [1]\nset [size v] to [40]\nset [dirsize v] to [1]\nset [glowsize v] to [30]\nset [glowsizedir v] to [4]\nset [maxx v] to [0]\nset [minx v] to [0]\nset [maxy v] to [0]\nset [miny v] to [0]\n\ndefine None\nset [rotatedx v] to (((distx) * (angle1)) - ((disty) * (angle2)))\nset [rotatedy v] to (((distx) * (angle2)) + ((disty) * (angle1)))\n\ndefine Level1\nCreate new Block: (-200) (-50) (200) (-50) (4)\nCreate new Block: (200) (-50) (200) (50) (4)\nCreate new Block: (200) (50) (350) (50) (4)\nCreate new Block: (450) (100) (600) (100) (4)\nCreate new Block: (700) (150) (1200) (150) (4)\nCreate new Block: (850) (150) (850) (200) (5)\nCreate new Block: (900) (200) (900) (150) (5)\nCreate new Block: (850) (200) (900) (200) (5)\nCreate new Block: (850) (150) (900) (150) (5)\nCreate new Block: (1050) (150) (1050) (200) (5)\nCreate new Block: (1100) (200) (1100) (150) (5)\nCreate new Block: (1050) (200) (1100) (200) (5)\nCreate new Block: (1050) (150) (1100) (150) (5)\nCreate new Block: (1200) (150) (1200) (225) (4)\nCreate new Block: (1200) (225) (1400) (225) (4)\nCreate new Block: (1500) (225) (1500) (425) (4)\nCreate new Block: (1500) (425) (1600) (425) (4)\nCreate new Block: (1550) (500) (1600) (425) (2)\nCreate new Block: (-200) (-50) (-200) (-100) (4)\nCreate new Block: (-200) (-100) (350) (-100) (4)\nCreate new Block: (350) (50) (350) (-100) (4)\nCreate new Block: (700) (150) (700) (100) (4)\nCreate new Block: (700) (100) (1600) (100) (4)\nCreate new Block: (1600) (425) (1600) (100) (4)\nCreate new Block: (1400) (225) (1500) (225) (3)\n\ndefine Level2\nCreate new Block: (-200) (-50) (200) (-50) (1)\nCreate new Block: (-160) (130) (-200) (130) (2)\nCreate new Block: (200) (-50) (200) (300) (1)\nCreate new Block: (200) (300) (-200) (300) (1)\nCreate new Block: (-200) (300) (-200) (180) (1)\nCreate new Block: (-200) (-50) (-200) (180) (4)\n\ndefine Level3\nCreate new Block: (-50) (-50) (500) (-50) (1)\nCreate new Block: (-50) (125) (600) (124) (1)\nCreate new Block: (100) (-50) (100) (25) (5)\nCreate new Block: (200) (225) (200) (50) (5)\nCreate new Block: (300) (-200) (300) (25) (5)\nCreate new Block: (400) (225) (400) (50) (5)\nCreate new Block: (500) (-125) (500) (35) (5)\nCreate new Block: (300) (-200) (600) (-200) (4)\nCreate new Block: (-100) (225) (0) (225) (4)\nCreate new Block: (300) (200) (0) (0) (2)\n\ndefine Level4\nCreate new Block: (-100) (-50) (100) (-50) (1)\nCreate new Block: (-395) (-175) (-200) (-175) (5)\nCreate new Block: (-60) (-100) (150) (-100) (4)\nCreate new Block: (-395) (-175) (-395) (0) (5)\nCreate new Block: (-415) (-195) (-415) (-15) (1)\nCreate new Block: (-415) (-195) (-200) (-195) (4)\nCreate new Block: (-525) (50) (-525) (150) (4)\nCreate new Block: (-600) (170) (-600) (270) (1)\nCreate new Block: (-750) (300) (-750) (900) (4)\nCreate new Block: (-550) (400) (-550) (900) (5)\nCreate new Block: (-750) (500) (-675) (500) (5)\nCreate new Block: (-750) (700) (-675) (700) (5)\nCreate new Block: (-750) (900) (-675) (900) (5)\nCreate new Block: (-700) (950) (-700) (1050) (3)\nCreate new Block: (-500) (1050) (-400) (1050) (3)\nCreate new Block: (-500) (700) (0) (0) (2)\nCreate new Block: (-500) (200) (500) (200) (5)\nCreate new Block: (-500) (200) (-500) (400) (5)\nCreate new Block: (-500) (400) (-550) (400) (5)\nCreate new Block: (-400) (850) (-300) (850) (1)\n\ndefine Level5\nCreate new Block: (-150) (-50) (100) (-50) (1)\nCreate new Block: (200) (0) (350) (0) (1)\nCreate new Block: (450) (50) (450) (200) (1)\nCreate new Block: (315) (175) (315) (300) (1)\nCreate new Block: (315) (300) (400) (300) (5)\nCreate new Block: (315) (320) (315) (450) (3)\nCreate new Block: (-25) (-150) (0) (0) (2)\nCreate new Block: (50) (-100) (50) (-300) (5)\n\ndefine PrintLevelThings\nif <(level) = [1]> then\n    broadcast (arrowKeys v)\n    broadcast (Danger v)\n    broadcast (bounce v)\n    broadcast (NextLevel v)\nelse\n    if <<(level) = [2]> and <(Dir) = [0]>> then\n        broadcast (Rotate v)\n    end\nend\nif <<((timer) - (LevelTime)) > [0]> and <((timer) - (LevelTime)) < [3]>> then\n    broadcast (level v)\nend\n\ndefine level6\nCreate new Block: (-50) (-50) (50) (-50) (4)\nCreate new Block: (50) (-50) (50) (50) (4)\nCreate new Block: (50) (50) (150) (50) (4)\nCreate new Block: (150) (50) (150) (150) (4)\nCreate new Block: (150) (150) (250) (150) (4)\nCreate new Block: (250) (150) (250) (250) (4)\nCreate new Block: (250) (250) (350) (250) (4)\nCreate new Block: (350) (250) (350) (350) (4)\nCreate new Block: (450) (350) (450) (150) (1)\nCreate new Block: (350) (350) (450) (350) (4)\nCreate new Block: (450) (150) (350) (150) (4)\nCreate new Block: (350) (150) (350) (50) (4)\nCreate new Block: (350) (50) (250) (50) (4)\nCreate new Block: (250) (50) (250) (-50) (4)\nCreate new Block: (250) (-50) (150) (-50) (4)\nCreate new Block: (250) (-50) (150) (-50) (4)\nCreate new Block: (-50) (-50) (-50) (-250) (4)\nCreate new Block: (-50) (-250) (250) (-250) (4)\nCreate new Block: (250) (-250) (250) (-150) (4)\nCreate new Block: (250) (-150) (350) (-150) (4)\nCreate new Block: (350) (-150) (350) (-50) (4)\nCreate new Block: (350) (-50) (450) (-50) (4)\nCreate new Block: (450) (-50) (450) (50) (4)\nCreate new Block: (450) (50) (550) (50) (4)\nCreate new Block: (550) (50) (550) (450) (4)\nCreate new Block: (450) (450) (450) (550) (4)\nCreate new Block: (550) (450) (450) (450) (4)\nCreate new Block: (450) (550) (350) (550) (4)\nCreate new Block: (350) (550) (350) (450) (4)\nCreate new Block: (350) (450) (250) (450) (4)\nCreate new Block: (250) (450) (250) (350) (4)\nCreate new Block: (250) (350) (150) (350) (4)\nCreate new Block: (150) (350) (150) (250) (4)\nCreate new Block: (150) (250) (50) (250) (4)\nCreate new Block: (50) (250) (50) (150) (4)\nCreate new Block: (50) (150) (-50) (150) (4)\nCreate new Block: (-50) (150) (-50) (50) (4)\nCreate new Block: (-50) (50) (-150) (50) (4)\nCreate new Block: (-150) (50) (-150) (-50) (4)\nCreate new Block: (-150) (-50) (-250) (-50) (4)\nCreate new Block: (-250) (-250) (-60) (-250) (5)\nCreate new Block: (-60) (-125) (-140) (-125) (5)\nCreate new Block: (-100) (-175) (-150) (-125) (2)\nCreate new Block: (150) (-50) (150) (-150) (4)\n\ndefine ResetLists\ndelete (all) of [particles v]\ndelete (all) of [trail v]\ndelete (all) of [lines v]\n\ndefine Level7\nCreate new Block: (100) (-50) (-300) (-50) (1)\nCreate new Block: (-300) (-50) (-300) (250) (1)\nCreate new Block: (-300) (250) (100) (250) (1)\nCreate new Block: (200) (25) (300) (25) (4)\nCreate new Block: (300) (200) (450) (200) (4)\nCreate new Block: (400) (25) (500) (25) (4)\nCreate new Block: (600) (200) (700) (200) (1)\nCreate new Block: (700) (275) (800) (275) (4)\nCreate new Block: (600) (0) (700) (0) (4)\nCreate new Block: (550) (200) (550) (350) (5)\nCreate new Block: (300) (15) (300) (-50) (5)\nCreate new Block: (500) (15) (500) (-65) (5)\nCreate new Block: (800) (0) (900) (0) (4)\nCreate new Block: (700) (-50) (800) (-50) (5)\nCreate new Block: (900) (0) (900) (450) (5)\nCreate new Block: (1000) (150) (0) (0) (2)\n\ndefine Level8\nCreate new Block: (62.5) (-350) (162.5) (-350) (5)\nCreate new Block: (-200) (150) (-200) (50) (4)\nCreate new Block: (-50) (-50) (50) (-50) (1)\nCreate new Block: (-50) (50) (-200) (50) (4)\nCreate new Block: (-200) (150) (-400) (150) (4)\nCreate new Block: (-50) (-250) (50) (-250) (3)\nCreate new Block: (-500) (50) (-600) (50) (4)\nCreate new Block: (-500) (62.5) (-600) (62.5) (5)\nCreate new Block: (-500) (-50) (-575) (-50) (3)\nCreate new Block: (-200) (-125) (-350) (-125) (3)\nCreate new Block: (-200) (-125) (-200) (-200) (5)\nCreate new Block: (50) (-50) (50) (-450) (4)\nCreate new Block: (62.5) (-350) (62.5) (-450) (1)\nCreate new Block: (-250) (350) (0) (0) (2)\nCreate new Block: (-20) (150) (-20) (550) (5)\n\nset [starttime v] to (timer)\nchange [stop key pressed? v] by (1)\nbroadcast (Music v)\nforever\n    set [stoptime v] to ((timer) + (0.3))\n    if <((timer) - (StartTime)) < [1.5]> then\n        broadcast ((Stop Key Pressed?) mod (2))\n    else\n        if <(timer) < [4]> then\n            broadcast (Spidertest v)\n        else\n            if <(timer) < [8]> then\n                broadcast (Title v)\n            else\n                if <(level) < [9]> then\n                    if <(MySize) > [55]> then\n                        Reset (level)\n                    end\n                    RenderTwice\n                    PrintLevelThings\n                else\n                    broadcast (finish v)\n                end\n            end\n        end\n    end\nend\n\nwhen [space v] key pressed\nbroadcast (nextlevel v)\n\nbroadcast (level v)\n\n@TextEngine\n\ndefine ResetLists\nset [alphabet v] to [abcdefghijklmnopqrstuvwxyz0123456789!#%^*\(\)-+_=/.,?'":]\nset [alphabet2 v] to [ABCDEFJHIJKLMNOPQRSTUVWXYZ]\ndelete (all) of [chars v]\nadd [/00/0444404202] to [chars v]\nadd [/00/0434320232424000] to [chars v]\nadd [/44/040040] to [chars v]\nadd [/00/043443413000] to [chars v]\nadd [/40/000232020444] to [chars v]\nadd [/00/0232020444] to [chars v]\nadd [/44/0400404222] to [chars v]\nadd [/00/0402424044] to [chars v]\nadd [/04/4424200040] to [chars v]\nadd [/24/2000] to [chars v]\nadd [/34/010004011240] to [chars v]\nadd [/04/0040] to [chars v]\nadd [/00/04224440] to [chars v]\nadd [/00/044044] to [chars v]\nadd [/00/04444000] to [chars v]\nadd [/00/04444202] to [chars v]\nadd [/00/044440004022] to [chars v]\nadd [/00/043432024240] to [chars v]\nadd [/44/14031232413000] to [chars v]\nadd [/20/240444] to [chars v]\nadd [/04/004044] to [chars v]\nadd [/04/2044] to [chars v]\nadd [/04/00224044] to [chars v]\nadd [/00/44/04/40] to [chars v]\nadd [/04/22202244] to [chars v]\nadd [/04/440040] to [chars v]\nadd [/00/0444400044] to [chars v]\nadd [/13/24201030] to [chars v]\nadd [/04/4442020040] to [chars v]\nadd [/04/444212424000] to [chars v]\nadd [/04/02424044] to [chars v]\nadd [/44/0402424000] to [chars v]\nadd [/44/040242400004] to [chars v]\nadd [/04/4420] to [chars v]\nadd [/00/044440000242] to [chars v]\nadd [/00/404202044442] to [chars v]\nadd [/20/20/22/24] to [chars v]\nadd [/00/14/30/44/01/41/03/43] to [chars v]\nadd [/04/14130304/40/30314140/00/44] to [chars v]\nadd [/13/2433] to [chars v]\nadd [/12/34/32/14] to [chars v]\nadd [/20/111324] to [chars v]\nadd [/20/313324] to [chars v]\nadd [/12/32] to [chars v]\nadd [/21/23221232] to [chars v]\nadd [/00/40] to [chars v]\nadd [/13/33/11/31] to [chars v]\nadd [/00/44] to [chars v]\nadd [/20/20] to [chars v]\nadd [/10/21] to [chars v]\nadd [/20/20/22/424424] to [chars v]\nadd [/23/24] to [chars v]\nadd [/13/14/33/34] to [chars v]\nadd [/21/21/23/23] to [chars v]\n\ndefine None\nrepeat (number)\n    print: [Faster] at x: (pick random (-240) to (200)) y: (pick random (-170) to (170)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\nend\n\ndefine None\nset pen size to (((s) / (4.5)) * (t))\nset [xint v] to (x)\nset [ii v] to [1]\nset [pen v] to [1]\nrepeat (length of (text))\n    if <not <([abs v] of (xInt) ) > [240]>> then\n        set [char v] to (letter (ii) of (text))\n        if <not <(Char) = []>> then\n            if <not <([\['concatenate:with:', \['readvariable', 'char'\], ''\] v] of (join [TextEngine] [])) = [0]>> then\n                Draw ([\['concatenate:with:', \['readvariable', 'char'\], ''\] v] of (join [TextEngine] [])) (y) (s) (h) (w) (i)\n            end\n        end\n    end\n    change [ii v] by (1)\n    change [xint v] by ((w) * ((s) * ((1) + ((0.5) * (sp)))))\nend\n\ndefine None\nset pen color to ((((r) * (65536)) + (((g) * (256)) + (b))) + ((o) * (16777216)))\n\ndefine Set [] to []\nset [\['getparam', 'var', 'r'\] v] to (text)\n\ndefine None\nset [iii v] to [1]\nset [xy v] to [1]\nrepeat (length of (char))\n    if <(letter (iii) of (char)) = [/]> then\n        set [pen v] to ((0) - (pen))\n        if <(pen) = [1]> then\n            pen down\n        else\n            pen up\n        end\n    else\n        set [xy v] to ((0) - (xy))\n        if <(xy) = [1]> then\n            set [y2 v] to ((y) + (((0.2) * ((s) * (h))) * (letter (iii) of (char))))\n            go to x: ((x2) + ((i) * (((y2) - (y)) / (10)))) y: (y2)\n        else\n            set [x2 v] to ((xInt) + (((0.2) * ((s) * (w))) * (letter (iii) of (char))))\n        end\n    end\n    change [iii v] by (1)\nend\n\ndefine None\nif <(type) = [1]> then\n    set [iii v] to [1]\n    repeat (26)\n        Set (letter (iii) of (alphabet)) to (item (iii) of [chars v])\n        change [iii v] by (1)\n    end\nelse\n    set [iii v] to [1]\n    repeat (26)\n        Set (letter (iii) of (alphabet)) to (item ((54) + (iii)) of [chars v])\n        change [iii v] by (1)\n    end\nend\n\nerase all\nResetVars (1)\nprint: [abcdefghijklmnop] at x: (-230) y: (0) size: (16) thickness: (0.5) width: (1) height: (1) spacing: (1) italics (1)\nprint: [qrstuvwxyz] at x: (-230) y: (-30) size: (16) thickness: (0.5) width: (1) height: (1) spacing: (1) italics (1)\n\nwhen I receive [1 v]\nerase all\nSet Pen Color to R: (200) G: (0) B: (0) Opacity (0)\nprint: [I Refuse] at x: (-225) y: (50) size: (41) thickness: (2) width: (1) height: (1) spacing: (0.9) italics (0)\nprint: [to Stop!] at x: (-230) y: (-50) size: (41) thickness: (2) width: (1) height: (1) spacing: (1) italics (0)\nSet Pen Color to R: (255) G: (0) B: (0) Opacity (0)\nprint: [I Refuse] at x: (-225) y: (50) size: (41) thickness: (1) width: (1) height: (1) spacing: (0.9) italics (0)\nprint: [to Stop!] at x: (-230) y: (-50) size: (41) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n\nwhen I receive [0 v]\nerase all\nSet Pen Color to R: (200) G: (0) B: (0) Opacity (0)\nprint: [It will] at x: (-185) y: (60) size: (41) thickness: (2) width: (1) height: (1) spacing: (1) italics (0)\nprint: [never ] at x: (-125) y: (-30) size: (41) thickness: (2) width: (1) height: (1) spacing: (1) italics (0)\nprint: [work!] at x: (-125) y: (-120) size: (41) thickness: (2) width: (1) height: (1) spacing: (1) italics (0)\nSet Pen Color to R: (255) G: (0) B: (0) Opacity (0)\nprint: [It will] at x: (-185) y: (60) size: (41) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\nprint: [never ] at x: (-125) y: (-30) size: (41) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\nprint: [work!] at x: (-125) y: (-120) size: (41) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n\nwhen I receive [spidertest v]\nerase all\nif <(timer) > [2.55]> then\n    Set Pen Color to R: (0) G: (255) B: (0) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (round ((timer) * (100))) B: (0) Opacity (0)\nend\nprint: [Spidertest] at x: (-210) y: (25) size: (30) thickness: (2) width: (1) height: (1) spacing: (1) italics (1)\nif <(timer) > [2.55]> then\n    Set Pen Color to R: (0) G: (0) B: (255) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (0) B: (round ((timer) * (100))) Opacity (0)\nend\nprint: [Spidertest] at x: (-210) y: (25) size: (30) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\nprint: [presents] at x: (-105) y: (-40) size: (20) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\n\nwhen I receive [title v]\nerase all\nif <((timer) - (3)) > [2.55]> then\n    Set Pen Color to R: (0) G: (200) B: (0) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (round (((timer) - (3)) * (75))) B: (0) Opacity (0)\nend\nprint: [Rotation] at x: (-210) y: (50) size: (37) thickness: (2) width: (1) height: (1) spacing: (1) italics (1)\nif <((timer) - (3)) > [2.55]> then\n    Set Pen Color to R: (0) G: (0) B: (255) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (0) B: (round (((timer) - (3)) * (100))) Opacity (0)\nend\nprint: [Rotation] at x: (-210) y: (50) size: (37) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\nprint: [ A 100% pen] at x: (-220) y: (-50) size: (25) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\nprint: [ platformer] at x: (-220) y: (-100) size: (25) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\n\nwhen I receive [level v]\nPrintLevel\n\ndefine PrintLevel\nif <((timer) - (LevelTime)) > [2.55]> then\n    Set Pen Color to R: (0) G: (255) B: (0) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (round (((timer) - (LevelTime)) * (100))) B: (0) Opacity (0)\nend\nprint: (join [Level:] (level)) at x: (-210) y: (50) size: (37) thickness: (2) width: (1) height: (1) spacing: (1) italics (1)\nif <((timer) - (LevelTime)) > [2.55]> then\n    Set Pen Color to R: (0) G: (0) B: (255) Opacity (0)\nelse\n    Set Pen Color to R: (0) G: (0) B: (round (((timer) - (LevelTime)) * (100))) Opacity (0)\nend\nprint: (join [Level:] (level)) at x: (-210) y: (50) size: (37) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\n\nwhen I receive [arrowkeys v]\nif <<((-150) - (CamX)) < [240]> and <((-150) - (CamX)) > [-560]>> then\n    if <([abs v] of ((0) - (CamY)) ) < [180]> then\n        Set Pen Color to R: (255) G: (255) B: (255) Opacity (0)\n        print: [use arrow keys to move!] at x: ((-150) - (CamX)) y: ((0) - (CamY)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n    end\nend\n\nwhen I receive [danger v]\nif <<((700) - (CamX)) < [240]> and <((700) - (CamX)) > [-480]>> then\n    if <([abs v] of ((250) - (CamY)) ) < [180]> then\n        Set Pen Color to R: (255) G: (255) B: (255) Opacity (0)\n        print: [avoid red lines!] at x: ((700) - (CamX)) y: ((250) - (CamY)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n    end\nend\n\nwhen I receive [bounce v]\nif <<((1210) - (CamX)) < [240]> and <((1210) - (CamX)) > [-560]>> then\n    Set Pen Color to R: (255) G: (255) B: (255) Opacity (0)\n    if <([abs v] of ((180) - (CamY)) ) < [180]> then\n        print: [Use it to Jump Higher!] at x: ((1210) - (CamX)) y: ((180) - (CamY)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n    end\nend\n\nwhen I receive [nextlevel v]\nif <((1400) - (CamX)) < [240]> then\n    if <([abs v] of ((570) - (CamY)) ) < [180]> then\n        Set Pen Color to R: (255) G: (255) B: (255) Opacity (0)\n        print: [Jump into the Portal!] at x: ((1400) - (CamX)) y: ((570) - (CamY)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n    end\nend\n\nwhen I receive [rotate v]\nSet Pen Color to R: (255) G: (255) B: (255) Opacity (0)\nprint: [Jump on glowing lines ] at x: ((-150) - (CamX)) y: ((-100) - (CamY)) size: (10) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\nif <((-150) - (CamY)) > [-180]> then\n    print: [to rotate!] at x: ((-130) - (CamX)) y: ((-150) - (CamY)) size: (20) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\nend\n\nwhen I receive [finish v]\nerase all\nprint: [you finished] at x: (-230) y: (30) size: (26) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\nprint: [the game!] at x: (-170) y: (-10) size: (26) thickness: (1) width: (1) height: (1) spacing: (1) italics (0)\n\nSet Pen Color to R: (180) G: (180) B: (0) Opacity (0)\nprint: [rotation] at x: (-230) y: (130) size: (40) thickness: (2) width: (1) height: (1) spacing: (1) italics (1)\nSet Pen Color to R: (255) G: (255) B: (0) Opacity (0)\nprint: [rotation] at x: (-230) y: (130) size: (40) thickness: (1) width: (1) height: (1) spacing: (1) italics (1)\n\n
arrow keys 