Neon!! A Pen 3D Scrolling Platformer                                         #Games#all#Trending
@Stage\n\n@Note\n\n@3D\n\ndefine fill (ax) (ay) (bx) (by) (cx) (cy) resolution: (res)\nset [lena v] to ([sqrt v] of ((((bx) - (cx)) * ((bx) - (cx))) + (((by) - (cy)) * ((by) - (cy)))) )\nset [lenb v] to ([sqrt v] of ((((ax) - (cx)) * ((ax) - (cx))) + (((ay) - (cy)) * ((ay) - (cy)))) )\nset [lenc v] to ([sqrt v] of ((((ax) - (bx)) * ((ax) - (bx))) + (((ay) - (by)) * ((ay) - (by)))) )\nset [peri v] to ((1) / (((lena) + (lenb)) + (lenc)))\nset [incx v] to (((((lena) * (ax)) + ((lenb) * (bx))) + ((lenc) * (cx))) * (peri))\nset [incy v] to (((((lena) * (ay)) + ((lenb) * (by))) + ((lenc) * (cy))) * (peri))\nset [ind v] to ([sqrt v] of ((((((lenb) + (lenc)) - (lena)) * (((lenc) + (lena)) - (lenb))) * (((lena) + (lenb)) - (lenc))) * (peri)) )\nset [aox v] to ((incx) - (ax))\nset [aoy v] to ((incy) - (ay))\nset [box v] to ((incx) - (bx))\nset [boy v] to ((incy) - (by))\nset [cox v] to ((incx) - (cx))\nset [coy v] to ((incy) - (cy))\nif <<(lena) < (lenb)> and <(lena) < (lenc)>> then\n    set [td v] to ([sqrt v] of (((Aox) * (Aox)) + ((Aoy) * (Aoy))) )\nelse\n    if <<(lenb) > (lena)> or <(lenb) > (lenc)>> then\n        set [td v] to ([sqrt v] of (((Cox) * (Cox)) + ((Coy) * (Coy))) )\n    else\n        set [td v] to ([sqrt v] of (((Box) * (Box)) + ((Boy) * (Boy))) )\n    end\nend\nset [rate v] to ((((td) * (2)) - (ind)) / ((td) * (4)))\nset [td v] to ((1) + (0))\ngo to x: (round (incx)) y: (round (incy))\nset pen size to (ind)\npen down\nrepeat ([ceiling v] of (([log v] of ((res) / (ind)) ) / ([log v] of (rate) )) )\n    set [td v] to ((td) * (rate))\n    set pen size to ((ind) * (td))\n    go to x: (((Aox) * (td)) + (ax)) y: (((Aoy) * (td)) + (ay))\n    go to x: (((Box) * (td)) + (bx)) y: (((Boy) * (td)) + (by))\n    go to x: (((Cox) * (td)) + (cx)) y: (((Coy) * (td)) + (cy))\n    go to x: (((Aox) * (td)) + (ax)) y: (((Aoy) * (td)) + (ay))\nend\npen up\n\ndefine Sort Lists\nset [passes v] to [0]\nset [switches v] to [0]\nrepeat until <<(Passes) > [0]> and <(Switches) = [0]>>\n    set [list_item v] to [0]\n    change [passes v] by (1)\n    set [switches v] to [0]\n    repeat ((length of [block distances v]) - (1))\n        change [list_item v] by (1)\n        if <(item ((List_Item) + (1)) of [block distances v]) > (item (List_Item) of [block distances v])> then\n            set [value v] to (item ((List_Item) + (1)) of [block distances v])\n            replace item ((List_Item) + (1)) of [block distances v] with (item (List_Item) of [block distances v])\n            replace item (List_Item) of [block distances v] with (value)\n            set [value v] to (item ((List_Item) + (1)) of [cube y pos v])\n            replace item ((List_Item) + (1)) of [cube y pos v] with (item (List_Item) of [cube y pos v])\n            replace item (List_Item) of [cube y pos v] with (value)\n            set [value v] to (item ((List_Item) + (1)) of [cube x pos v])\n            replace item ((List_Item) + (1)) of [cube x pos v] with (item (List_Item) of [cube x pos v])\n            replace item (List_Item) of [cube x pos v] with (value)\n            set [value v] to (item ((List_Item) + (1)) of [cube z pos v])\n            replace item ((List_Item) + (1)) of [cube z pos v] with (item (List_Item) of [cube z pos v])\n            replace item (List_Item) of [cube z pos v] with (value)\n            set [value v] to (item ((List_Item) + (1)) of [platform type v])\n            replace item ((List_Item) + (1)) of [platform type v] with (item (List_Item) of [platform type v])\n            replace item (List_Item) of [platform type v] with (value)\n            change [switches v] by (1)\n        end\n    end\nend\n\ndefine Distance\ndelete all of [block distances v]\nset [iii v] to [0]\nrepeat (length of [cube x pos v])\n    change [iii v] by (1)\n    add (round ([sqrt v] of ((((cam z) - (item (iii) of [cube z pos v])) * ((cam z) - (item (iii) of [cube z pos v]))) + ((((cam y) - (item (iii) of [cube y pos v])) * ((cam y) - (item (iii) of [cube y pos v]))) + (((cam x) - (item (iii) of [cube x pos v])) * ((cam x) - (item (iii) of [cube x pos v]))))) )) to [block distances v]\nend\n\ndefine Calculate Trig Values (x) (y)\nset [sin x v] to ([sin v] of (y) )\nset [cos x v] to ([cos v] of (y) )\nset [sin y v] to ([sin v] of (x) )\nset [cos y v] to ([cos v] of (x) )\n\ndefine Turn and Move\nset [speed v] to [3]\nset [rot speed v] to [4]\nchange [rot x v] by ((<key (left arrow v) pressed?> - <key (right arrow v) pressed?>) * (Rot Speed))\nchange [rot y v] by ((<key (up arrow v) pressed?> - <key (down arrow v) pressed?>) * (Rot Speed))\nif <[90] < (rot Y)> then\n    set [rot y v] to [89]\nend\nif <(rot Y) < [-90]> then\n    set [rot y v] to [-89]\nend\nCalculate Trig Values (rot X) (rot Y)\nchange [zvel v] by (((<key (w v) pressed?> - <key (s v) pressed?>) * (cos Y)) * (Speed))\nchange [xvel v] by (((<key (s v) pressed?> - <key (w v) pressed?>) * (sin Y)) * (Speed))\nchange [zvel v] by (((<key (d v) pressed?> - <key (a v) pressed?>) * (sin Y)) * (Speed))\nchange [xvel v] by (((<key (d v) pressed?> - <key (a v) pressed?>) * (cos Y)) * (Speed))\nPhysics\n\ndefine Collisions!\nset [touching platform? v] to [no]\nset [touching end v] to [no]\nset [i v] to [0]\nrepeat (length of [cube x pos v])\n    change [i v] by (1)\n    if <<<not <(Player y) < ((item (i) of [cube y pos v]) - (90))>> and <not <(Player y) > ((item (i) of [cube y pos v]) + (130))>>> and <<<not <(Player Z) < ((item (i) of [cube z pos v]) - (100))>> and <not <(Player Z) > ((item (i) of [cube z pos v]) + (100))>>> and <<not <(Player x) < ((item (i) of [cube x pos v]) - (100))>> and <not <(Player x) > ((item (i) of [cube x pos v]) + (100))>>>>> then\n        if <not <(item (i) of [platform type v]) = [Player]>> then\n            if <(item (i) of [platform type v]) = [Platform]> then\n                set [touching platform? v] to [yes]\n            else\n                if <(item (i) of [platform type v]) = [Lava]> then\n                    Reset\n                else\n                    if <(item (i) of [platform type v]) = [Bounce]> then\n                        set [y vel v] to [30]\n                    else\n                        if <(item (i) of [platform type v]) = [Water]> then\n                            set [y vel v] to ((Y vel) * (0.9))\n                            set [xvel v] to ((Xvel) * (0.5))\n                            set [zvel v] to ((Zvel) * (0.5))\n                            set [falling? v] to [0]\n                        else\n                            if <(item (i) of [platform type v]) = [End]> then\n                                set [touching end v] to [yes]\n                                change [level v] by (1)\n                                Reset\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        stop [this script v]\n    end\nend\n\ndefine Physics\nchange [falling? v] by (1)\nchange [y vel v] by (-1)\nchange [player y v] by (Y vel)\nCollisions!\nif <(Touching platform?) = [yes]> then\n    Y collision (Y vel)\nend\nchange [player z v] by (Zvel)\nCollisions!\nif <(Touching platform?) = [yes]> then\n    Z Collision (Zvel)\nend\nchange [player x v] by (Xvel)\nCollisions!\nif <(Touching platform?) = [yes]> then\n    X Collisions (Xvel)\nend\nset [zvel v] to ((Zvel) * (0.7))\nset [xvel v] to ((Xvel) * (0.7))\nif <<key (space v) pressed?> and <(Falling?) < [5]>> then\n    set [y vel v] to [14]\nend\nif <(cam y) < [-500]> then\n    Reset\nend\nif <(Person view) = [3]> then\n    Set up 3rd person view cam (Player x) (Player y) (Player Z) [200] [200]\n    Level design ((Player x) / (100)) (((Player y) - (10)) / (100)) ((Player Z) / (100)) [Player]\nelse\n    Set Up First person view\nend\nRender\n\ndefine Y collision (y)\nrepeat until <not <(Touching platform?) = [yes]>>\n    if <(y) > [0]> then\n        change [player y v] by (-1)\n    else\n        change [player y v] by (1)\n        set [falling? v] to [0]\n    end\n    set [y vel v] to [0]\n    Collisions!\nend\n\ndefine Z Collision (z)\nrepeat until <not <(Touching platform?) = [yes]>>\n    if <(z) > [0]> then\n        change [player z v] by (-1)\n    else\n        change [player z v] by (1)\n    end\n    set [zvel v] to [0]\n    Collisions!\nend\n\ndefine X Collisions (x)\nrepeat until <not <(Touching platform?) = [yes]>>\n    if <(x) > [0]> then\n        change [player x v] by (-1)\n    else\n        change [player x v] by (1)\n    end\n    set [xvel v] to [0]\n    Collisions!\nend\n\ndefine Reset\nset [player x v] to [0]\nset [player y v] to [150]\nset [player z v] to [0]\nset [y vel v] to [0]\n\ndefine Level\ndelete all of [cube y pos v]\ndelete all of [cube x pos v]\ndelete all of [cube z pos v]\ndelete all of [platform type v]\nif <(Level) = [1]> then\n    Level design [1] [0] [0] [Platform]\n    Level design [0] [0] [0] [Platform]\n    Level design [2] [0] [0] [Lava]\n    Level design [3] [0] [0] [Bounce]\n    Level design [3] [4] [0] [Bounce]\n    Level design [7] [4] [0] [Platform]\n    Level design [8] [4] [0] [Lava]\n    Moving platform [9] [4] [0] to [9] [10] [0] Speed [20] Platform type [Platform]\n    Level design [10] [10] [0] [End]\nend\nif <(Level) = [2]> then\n    Level design [1] [0] [0] [Platform]\n    Level design [0] [0] [0] [Platform]\n    Level design [2] [0] [0] [Lava]\n    Level design [3] [0] [0] [Bounce]\n    Level design [4] [0] [0] [Lava]\n    Level design [5] [0] [0] [Lava]\n    Level design [6] [0] [0] [Lava]\n    Level design [7] [0] [0] [Platform]\n    Moving platform [8] [0] [0] to [12] [0] [0] Speed [20] Platform type [Platform]\n    Level design [13] [0] [0] [End]\nend\nif <(Level) = [3]> then\n    Level design [1] [0] [0] [Platform]\n    Level design [0] [0] [0] [Platform]\n    Level design [2] [0] [0] [Lava]\n    Level design [3] [0] [0] [Platform]\n    Level design [4] [0] [0] [Lava]\n    Level design [5] [0] [0] [Lava]\n    Level design [6] [0] [0] [Platform]\n    Level design [7] [0] [0] [Platform]\n    Level design [7] [0] [1] [Platform]\n    Level design [7] [0] [2] [Platform]\n    Level design [7] [0] [3] [Lava]\n    Level design [7] [0] [4] [Lava]\n    Level design [7] [0] [5] [Bounce]\n    Level design [7] [0] [6] [Lava]\n    Level design [7] [0] [7] [Lava]\n    Level design [7] [0] [8] [Lava]\n    Level design [7] [0] [9] [Lava]\n    Level design [7] [0] [10] [Platform]\n    Moving platform [8] [0] [10] to [12] [0] [10] Speed [20] Platform type [Platform]\n    Level design [13] [0] [10] [End]\nend\nif <(Level) = [4]> then\n    Level design [1] [0] [0] [Platform]\n    Level design [0] [0] [0] [Platform]\n    Level design [2] [0] [0] [Lava]\n    Level design [3] [0] [0] [Platform]\n    Level design [4] [0] [0] [Lava]\n    Level design [5] [0] [0] [Lava]\n    Level design [6] [0] [0] [Platform]\n    Level design [7] [0] [0] [Platform]\n    Level design [7] [0] [1] [Platform]\n    Level design [7] [0] [2] [Platform]\n    Level design [7] [0] [3] [Lava]\n    Level design [7] [0] [4] [Lava]\n    Level design [7] [0] [5] [Bounce]\n    Level design [7] [0] [6] [Lava]\n    Level design [7] [0] [7] [Lava]\n    Level design [7] [0] [8] [Lava]\n    Level design [7] [0] [9] [Lava]\n    Level design [7] [0] [10] [Platform]\n    Moving platform [8] [0] [10] to [12] [0] [10] Speed [20] Platform type [Bounce]\n    Moving platform [13] [0] [10] to [13] [10] [10] Speed [20] Platform type [Platform]\n    Level design [14] [10] [10] [Platform]\n    Level design [15] [10] [10] [Bounce]\n    Moving platform [16] [11] [10] to [20] [11] [10] Speed [20] Platform type [Lava]\n    Level design [16] [10] [10] [Platform]\n    Level design [17] [10] [10] [Platform]\n    Level design [18] [10] [10] [Platform]\n    Level design [19] [10] [10] [Platform]\n    Level design [20] [10] [10] [Platform]\n    Level design [21] [10] [10] [End]\nend\nif <(Level) = [5]> then\n    Level design [1] [0] [0] [Platform]\n    Level design [0] [0] [0] [Platform]\n    Level design [14] [10] [10] [Platform]\n    Level design [15] [10] [10] [Platform]\n    Level design [2] [0] [0] [Lava]\n    Level design [3] [0] [0] [Platform]\n    Level design [4] [0] [0] [Lava]\n    Level design [5] [0] [0] [Lava]\n    Level design [6] [0] [0] [Platform]\n    Level design [7] [0] [0] [Platform]\n    Level design [7] [0] [1] [Platform]\n    Level design [7] [0] [2] [Platform]\n    Level design [7] [0] [3] [Lava]\n    Level design [7] [0] [4] [Lava]\n    Level design [7] [0] [5] [Bounce]\n    Level design [7] [0] [6] [Lava]\n    Level design [7] [0] [7] [Lava]\n    Level design [7] [0] [8] [Lava]\n    Level design [7] [0] [9] [Lava]\n    Level design [7] [0] [10] [Platform]\n    Level design [7] [0] [-1] [Platform]\n    Level design [7] [0] [-2] [Platform]\n    Level design [7] [0] [-3] [Lava]\n    Level design [7] [0] [-4] [Lava]\n    Level design [7] [0] [-5] [Bounce]\n    Level design [7] [0] [-6] [Lava]\n    Level design [7] [0] [-7] [Lava]\n    Level design [7] [0] [-8] [Lava]\n    Level design [7] [0] [-9] [Lava]\n    Level design [7] [0] [-10] [Platform]\n    Level design [8] [0] [-10] [Platform]\n    Level design [9] [0] [-10] [Platform]\n    Level design [10] [0] [-10] [Bounce]\n    Level design [11] [0] [-10] [Lava]\n    Level design [12] [0] [-10] [Lava]\n    Level design [13] [0] [-10] [Platform]\n    Level design [14] [0] [-10] [Platform]\n    Level design [14] [0] [-9] [Platform]\n    Level design [14] [0] [-8] [Platform]\n    Level design [14] [0] [-7] [Bounce]\n    Level design [14] [0] [-6] [Lava]\n    Level design [14] [0] [-5] [Lava]\n    Level design [14] [0] [-4] [Platform]\n    Moving platform [14] [0] [-4] to [14] [0] [-1] Speed [20] Platform type [Platform]\n    Level design [7] [0] [10] [Platform]\n    Level design [8] [0] [10] [Platform]\n    Level design [9] [0] [10] [Platform]\n    Level design [10] [0] [10] [Bounce]\n    Level design [11] [0] [10] [Lava]\n    Level design [12] [0] [10] [Lava]\n    Level design [13] [0] [10] [Platform]\n    Level design [14] [0] [10] [Platform]\n    Level design [14] [0] [9] [Platform]\n    Level design [14] [0] [8] [Platform]\n    Level design [14] [0] [7] [Bounce]\n    Level design [14] [0] [6] [Lava]\n    Level design [14] [0] [5] [Lava]\n    Level design [14] [0] [4] [Platform]\n    Moving platform [14] [0] [4] to [14] [0] [1] Speed [20] Platform type [Platform]\n    Level design [14] [0] [0] [End]\nend\n\ndefine Render\nDistance\nSort Lists\nset pen size to (8)\nset [ii v] to [0]\nrepeat (length of [cube x pos v])\n    change [ii v] by (1)\n    if <(item (ii) of [block distances v]) < [1100]> then\n        Select color (item (ii) of [platform type v])\n        Draw Filled Cube At (item (ii) of [cube x pos v]) (item (ii) of [cube y pos v]) (item (ii) of [cube z pos v])\n    end\nend\nDraw Crosshair\n\nwhen flag clicked\nforever\n    if <mouse down?> then\n        set [old mouse x v] to (mouse x)\n        set [old mouse y v] to (mouse y)\n        wait (0.000001) seconds\n        if <not <<<(mouse y) < [-80]> and <(mouse x) < [-140]>> and <(mouse y) < [-80]>>> then\n            change [rot y v] by (((mouse y) - (Old Mouse Y)) / (0.7))\n            change [rot x v] by (((Old Mouse X) - (mouse x)) / (0.7))\n        end\n    end\nend\n\ndefine Select color (current platform type)\nif <(current platform type) = [Platform]> then\n    set pen color to (#00ff08)\nelse\n    if <(current platform type) = [Lava]> then\n        set pen color to (#ff0000)\n    else\n        if <(current platform type) = [Bounce]> then\n            set pen color to (#ffe900)\n        else\n            if <(current platform type) = [End]> then\n                set pen color to (#ff6e00)\n            else\n                if <(current platform type) = [Player]> then\n                    set pen color to (#00a9ff)\n                end\n            end\n        end\n    end\nend\n\ndefine Level design (x) (y) (z) (type)\nadd ((x) * (100)) to [cube x pos v]\nadd ((y) * (100)) to [cube y pos v]\nadd ((z) * (100)) to [cube z pos v]\nadd (type) to [platform type v]\n\ndefine Moving platform (x1) (y1) (z1) to (x2) (y2) (z2) Speed (speed) Platform type (type)\nset [speed sin v] to (([sin v] of ((timer) * (speed)) ) + (1))\nLevel design (((((x2) - (x1)) / (2)) * (speed Sin)) + (x1)) (((((y2) - (y1)) / (2)) * (speed Sin)) + (y1)) (((((z2) - (z1)) / (2)) * (speed Sin)) + (z1)) (type)\n\ndefine Set up 3rd person view cam (player x) (player y) (player z) (distance) (height)\nset [cam x v] to ((player x) + (((distance) * (sin Y)) * (cos X)))\nset [cam z v] to ((player z) + ((((distance) * (-1)) * (cos Y)) * (cos X)))\nset [cam y v] to ((player y) + ((distance) * ((sin X) * (-1))))\n\ndefine Draw Filled Cube At (x) (y) (z)\nif <(cam z) < ((z) - (50))> then\n    Draw square| Insert the 2 corners ((x) + (-50)) ((y) + (-50)) ((z) + (-50)) ((x) + (50)) ((y) + (50)) ((z) + (-50))\nend\nif <(cam z) > ((z) + (50))> then\n    Draw square| Insert the 2 corners ((x) + (-50)) ((y) + (-50)) ((z) + (50)) ((x) + (50)) ((y) + (50)) ((z) + (50))\nend\nif <(cam x) > ((x) + (50))> then\n    Draw square| Insert the 2 corners ((x) + (50)) ((y) + (50)) ((z) + (50)) ((x) + (50)) ((y) + (-50)) ((z) + (-50))\nend\nif <(cam x) < ((x) - (50))> then\n    Draw square| Insert the 2 corners ((x) + (-50)) ((y) + (50)) ((z) + (50)) ((x) + (-50)) ((y) + (-50)) ((z) + (-50))\nend\nif <(cam y) > ((y) + (50))> then\n    Fill 3D Tri ((x) + (50)) ((y) + (50)) ((z) + (-50)) ((x) + (-50)) ((y) + (50)) ((z) + (-50)) ((x) + (-50)) ((y) + (50)) ((z) + (50))\n    Fill 3D Tri ((x) + (-50)) ((y) + (50)) ((z) + (50)) ((x) + (50)) ((y) + (50)) ((z) + (50)) ((x) + (50)) ((y) + (50)) ((z) + (-50))\nend\nif <(cam y) < ((y) - (50))> then\n    Fill 3D Tri ((x) + (50)) ((y) + (-50)) ((z) + (-50)) ((x) + (-50)) ((y) + (-50)) ((z) + (-50)) ((x) + (-50)) ((y) + (-50)) ((z) + (50))\n    Fill 3D Tri ((x) + (-50)) ((y) + (-50)) ((z) + (50)) ((x) + (50)) ((y) + (-50)) ((z) + (50)) ((x) + (50)) ((y) + (-50)) ((z) + (-50))\nend\n\ndefine Fill 3D Tri (x1) (y1) (z1) (x2) (y2) (z2) (x3) (y3) (z3)\nX Y Z Setup (x1) (y1) (z1)\nset [x1 v] to (X3)\nset [y1 v] to (Y3)\nset [z1 v] to (Z3)\nX Y Z Setup (x2) (y2) (z2)\nset [x2 v] to (X3)\nset [y2 v] to (Y3)\nset [z2 v] to (Z3)\nX Y Z Setup (x3) (y3) (z3)\nif <not <<(z1) < [1]> and <<(z2) < [1]> and <(Z3) < [1]>>>> then\n    Z Clip\n    set pen (brightness v) to (((1000) - (item (ii) of [block distances v])) / (6))\n    Wire Frame\n    change pen (brightness v) by (10)\nend\n\nfill ((FOV) * ((x1) / (z1))) ((FOV) * ((y1) / (z1))) ((FOV) * ((x2) / (z2))) ((FOV) * ((y2) / (z2))) ((FOV) * ((X3) / (Z3))) ((FOV) * ((Y3) / (Z3))) resolution: (1)\n\ndefine Set Point (x) (y) (z)\nset [x3 v] to (x)\nset [y3 v] to (y)\nset [z3 v] to (z)\n\ndefine X Y Z Setup (x) (y) (z)\nSet Point ((x) - (cam x)) [] ((z) - (cam z))\nSet Point (((Z3) * (sin Y)) + ((X3) * (cos Y))) ((y) - (cam y)) (((Z3) * (cos Y)) - ((X3) * (sin Y)))\nSet Point (X3) (((Y3) * (cos X)) - ((Z3) * (sin X))) (((Y3) * (sin X)) + ((Z3) * (cos X)))\n\ndefine Z Clip\nif <(z1) < [1]> then\n    set [z1 v] to [1]\nend\nif <(z2) < [1]> then\n    set [z2 v] to [1]\nend\nif <(Z3) < [1]> then\n    set [z3 v] to [1]\nend\n\nwhen flag clicked\nswitch costume to (costume2 v)\nset size to (Infinity) %\nswitch costume to (costume1 v)\nReset\nset [level v] to [1]\nforever\n    if <(touching end) = [yes]> then\n        change [level v] by (1)\n    end\n    erase all\n    Turn and Move\n    Level\nend\n\ndefine Set Up First person view\nset [cam x v] to (Player x)\nset [cam z v] to (Player Z)\nset [cam y v] to (Player y)\n\nwhen [1 v] key pressed\nset [person view v] to [1]\n\nwhen [3 v] key pressed\nset [person view v] to [3]\n\ndefine Draw Crosshair\nset pen size to (2)\nset pen color to (#ffffff)\ngo to x: (-10) y: (0)\npen down\ngo to x: (10) y: (0)\ngo to x: (0) y: (0)\ngo to x: (0) y: (-10)\ngo to x: (0) y: (10)\npen up\n\ndefine Draw square| Insert the 2 corners (x1) (y1) (z1) (x2) (y2) (z2)\nFill 3D Tri (x1) (y1) (z1) (x2) (y2) (z2) (x2) (y1) (z2)\nFill 3D Tri (x1) (y1) (z1) (x2) (y2) (z2) (x1) (y2) (z1)\n\ndefine Wire Frame\nset pen size to (5)\nchange pen (brightness v) by (-10)\ngo to x: ((FOV) * ((x1) / (z1))) y: ((FOV) * ((y1) / (z1)))\npen down\ngo to x: ((FOV) * ((x2) / (z2))) y: ((FOV) * ((y2) / (z2)))\ngo to x: ((FOV) * ((X3) / (Z3))) y: ((FOV) * ((Y3) / (Z3)))\ngo to x: ((FOV) * ((x1) / (z1))) y: ((FOV) * ((y1) / (z1)))\npen up\n\nLevel design [X] [Y] [Z] [Type]\n\nMoving platform [X1] [Y1] [Z1] to [X2] [Y2] [Z2] Speed [Speed] Platform type [Type]\n\nLevel design [X] [Y] [Z] [Platform]\nLevel design [X] [Y] [Z] [Lava]\nLevel design [X] [Y] [Z] [Bounce]\nLevel design [X] [Y] [Z] [Water]\nLevel design [X] [Y] [Z] [End]\n\nwhen flag clicked\nforever\n    if <<(touching end) = [yes]> and <(Level) = [1]>> then\n        set [level v] to [2]\n    end\n    if <<(touching end) = [yes]> and <(Level) = [2]>> then\n        set [level v] to [3]\n    end\n    if <<(touching end) = [yes]> and <(Level) = [3]>> then\n        set [level v] to [4]\n    end\n    if <<(touching end) = [yes]> and <(Level) = [4]>> then\n        set [level v] to [5]\n    end\n    if <<(touching end) = [yes]> and <(Level) = [5]>> then\n    end\nend\n\nset [level v] to [4]\n\nset [level v] to [4]\n\nbroadcast (Win v)\n\n@TN\n\nwhen flag clicked\nshow\nforever\n    go to [front v] layer\n    change [ghost v] effect by (100)\nend\n\n@You Win\n\nwhen flag clicked\nhide\nshow variable [level v]\n\nwhen I receive [win v]\n\nwhen flag clicked\nforever\n    if <(Level) = [6]> then\n        hide variable [level v]\n        show\n        go to [front v] layer\n    end\nend\n\n@Logo\n\n@Timer\n\nwhen flag clicked\nset [timer v] to [0]\nforever\n    repeat until <(Level) = [6]>\n        wait (1) seconds\n        change [timer v] by (1)\n    end\nend\n\n