Neon Glow || 100% 3D Pen Platformer

Instructions: ----------------------------Controls---------------------------\nThis project is participating in @5wonders's contest!\nALL ADS, SPAM, COPIES, AND CHAINMAIL WILL BE DELETED!!!\nSCROLL ALL THE WAY DOWN UNTIL THE TAGS PLEASE AND THANK YOU! :)\n\nThere are currently 14 levels!\nChromebooks will lag :/\nNo mobile controls :/\nIf you fall through the moving platform, reload the page :)\n\nArrow Keys to look around\nW,A,S,D to move\nSpace to jump\n\n-When your stuck in a blue box that is the end... for now.\n\n-Fullscreen Recommended\n\nCyan = Platform\nGreen = End\nYellow = Trampoline\nRed = Lava\Spike\nBlue = Water\nTransparent Cyan = Ice\n-----------------------------Credits----------------------------\n@k0stya for the 3D engine (Edited By Me)\n@-FlyingPig- for creating this\n@Bubblebee3 for the music\n-------------------------------Tags-----------------------------\n#games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #3D \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@Thecatsear

@Stage\n\n@blank\n\nwhen flag clicked\nreset timer\nhide variable [☁ highscore v]\nforever\n    play sound [music v] until done\nend\n\n@render\n\ndefine Set Pen Color | RGB (r) (g) (b) (alpha)\nset pen color to ((round (b)) + ((256) * ((round (g)) + ((256) * ((round (r)) + ((256) * (alpha)))))))\n\ndefine Sort (value) into List\nset [sorted position v] to []\nif <[0] = (length of [sorted v])> then\n    set [sorted position v] to [1]\nelse\n    set [lower limit v] to [1]\n    set [upper limit v] to (length of [sorted v])\n    if <(value) < (item (Lower Limit) of [sorted v])> then\n        set [sorted position v] to (Lower Limit)\n    else\n        if <(value) > (item (Upper Limit) of [sorted v])> then\n            set [sorted position v] to ((1) + (Upper Limit))\n        else\n            repeat until <[1] = ((Upper Limit) - (Lower Limit))>\n                if <(value) > (item (round (((Upper Limit) + (Lower Limit)) / (2))) of [sorted v])> then\n                    set [lower limit v] to (round (((Upper Limit) + (Lower Limit)) / (2)))\n                else\n                    set [upper limit v] to (round (((Upper Limit) + (Lower Limit)) / (2)))\n                    if <(value) = (item (Upper Limit) of [sorted v])> then\n                        set [lower limit v] to ((-1) + (Upper Limit))\n                    end\n                end\n            end\n            set [sorted position v] to (Upper Limit)\n        end\n    end\nend\ninsert (value) at (Sorted Position) of [sorted v] \ninsert (item (Counter) of [which one v]) at (Sorted Position) of [sorted order v] \n\nwhen flag clicked\nhide\nset pen size to (8)\nset pen color to (#7192ff)\nset [view factor v] to [150]\nset [level v] to [1]\nDesign\nReset\nforever\n    erase all\n    Render\n    if <(Touching End?) = [yes]> then\n        change [level v] by (1)\n        Design\n        Reset\n    end\nend\n\ndefine Render\nDesign\nMove\nPhysics With Collisions [-1] [0.7] [5]\nset size to (100) %\nswitch costume to (costume3 v)\nGo To [0] [0] [0] With Translation At [10000000000] [20000000000] [10000000000]\nif <not <(Z) < [1]>> then\n    go to x: ((View Factor) * ((X) / (Z))) y: ((View Factor) * ((Y) / (Z)))\n    set [ghost v] effect to (70)\n    if <<[140] > (y position)> or <[-140] < (y position)>> then\n        stamp\n    end\nend\nswitch costume to (costume2 v)\nset size to (9999999999999999999999999999) %\nswitch costume to (costume1 v)\nCalculate Distance\nSort\nset [counter v] to (length of [platform x pos v])\nrepeat (length of [platform x pos v])\n    set [i v] to (item # of (Counter) in [sorted order v])\n    Draw Platform At (item (i) of [platform x pos v]) (item (i) of [platform y pos v]) (item (i) of [platform z pos v])\n    change [counter v] by (-1)\nend\nSet Pen Color | RGB [200] [200] [200] [150]\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 Go To (x) (y) (z) With Translation At (x1) (y1) (z1)\nP (x) (y) (z)\nThis rotates Platform around cam Cube Pos (x1) (y1) (z1)\n\ndefine P=Translate (x) (y) (z) By (tx) (ty) (tz)\nset [x v] to ((x) - (tx))\nset [y v] to ((y) - (ty))\nset [z v] to ((z) - (tz))\n\ndefine P = Rotate (y) (z) Around +X Axis By (angle) degrees\nset [y v] to (((y) * ([cos v] of (angle) )) - ((z) * ([sin v] of (angle) )))\nset [z v] to (((y) * ([sin v] of (angle) )) + ((z) * ([cos v] of (angle) )))\n\ndefine P = Rotate (x) (z) Around +Y axis by (angle) Degrees\nset [x v] to (((z) * ([sin v] of (angle) )) + ((x) * ([cos v] of (angle) )))\nset [z v] to (((z) * ([cos v] of (angle) )) - ((x) * ([sin v] of (angle) )))\n\ndefine P = Perspective projection of (x) (y) (z) With FOV (fov)\nset [x v] to ((x) * ((fov) / (z)))\nset [y v] to ((y) * ((fov) / (z)))\n\ndefine Draw Platform At (x) (y) (z)\nif < (item (i) of [platform type v]) contains [cube]?> then\n    if < (item (i) of [platform type v]) contains [platform]?> then\n        Set Pen Color | RGB [0] [220] [255] [256]\n    else\n        if << (item (i) of [platform type v]) contains [lava]?> or < (item (i) of [platform type v]) contains [spike]?>> then\n            Set Pen Color | RGB [255] [100] [100] [256]\n        else\n            if < (item (i) of [platform type v]) contains [ice]?> then\n                Set Pen Color | RGB [0] [255] [230] [100]\n            else\n                if < (item (i) of [platform type v]) contains [slowness]?> then\n                    Set Pen Color | RGB [220] [130] [0] [256]\n                else\n                    if < (item (i) of [platform type v]) contains [water]?> then\n                        Set Pen Color | RGB [0] [100] [255] [256]\n                    else\n                        if < (item (i) of [platform type v]) contains [trampoline]?> then\n                            Set Pen Color | RGB [255] [255] [0] [256]\n                        else\n                            if < (item (i) of [platform type v]) contains [bounce]?> then\n                                Set Pen Color | RGB [255] [255] [0] [256]\n                            else\n                                if < (item (Counter) of [platform type v]) contains [invisible]?> then\n                                    Set Pen Color | RGB [0] [220] [255] [256]\n                                else\n                                    if < (item (i) of [platform type v]) contains [end]?> then\n                                        Set Pen Color | RGB [0] [255] [0] [256]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n    Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n    Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n    Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n    Draw Line [-50] [-50] [50] To [50] [-50] [50] At (x) (y) (z)\n    Draw Line [-50] [-50] [-50] To [50] [-50] [-50] At (x) (y) (z)\n    Draw Line [50] [-50] [50] To [50] [-50] [-50] At (x) (y) (z)\n    Draw Line [-50] [-50] [50] To [-50] [-50] [-50] At (x) (y) (z)\n    Draw Line [-50] [-50] [50] To [-50] [50] [50] At (x) (y) (z)\n    Draw Line [-50] [-50] [-50] To [-50] [50] [-50] At (x) (y) (z)\n    Draw Line [50] [-50] [50] To [50] [50] [50] At (x) (y) (z)\n    Draw Line [50] [-50] [-50] To [50] [50] [-50] At (x) (y) (z)\nelse\n    if < (item (i) of [platform type v]) contains [Platform]?> then\n        Set Pen Color | RGB [0] [220] [255] [256]\n        Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n        Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n        Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n        Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n    else\n        if < (item (i) of [platform type v]) contains [Spike]?> then\n            Set Pen Color | RGB [255] [100] [100] [256]\n            Draw Line [-50] [-50] [50] To [50] [-50] [50] At (x) (y) (z)\n            Draw Line [-50] [-50] [-50] To [50] [-50] [-50] At (x) (y) (z)\n            Draw Line [50] [-50] [50] To [50] [-50] [-50] At (x) (y) (z)\n            Draw Line [-50] [-50] [50] To [-50] [-50] [-50] At (x) (y) (z)\n            Draw Line [-50] [-50] [-50] To [0] [50] [0] At (x) (y) (z)\n            Draw Line [50] [-50] [-50] To [0] [50] [0] At (x) (y) (z)\n            Draw Line [50] [-50] [50] To [0] [50] [0] At (x) (y) (z)\n            Draw Line [-50] [-50] [50] To [0] [50] [0] At (x) (y) (z)\n        else\n            if < (item (i) of [platform type v]) contains [Lava]?> then\n                Set Pen Color | RGB [255] [100] [100] [256]\n                Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n            else\n                if < (item (i) of [platform type v]) contains [Ice]?> then\n                    Set Pen Color | RGB [0] [255] [230] [100]\n                    Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                    Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                    Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                    Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n                else\n                    if < (item (i) of [platform type v]) contains [Slowness]?> then\n                        Set Pen Color | RGB [220] [130] [0] [256]\n                        Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                        Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                        Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                        Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n                    else\n                        if < (item (i) of [platform type v]) contains [Water]?> then\n                            Set Pen Color | RGB [0] [100] [255] [256]\n                            Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                            Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                            Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                            Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n                        else\n                            if < (item (i) of [platform type v]) contains [Trampoline]?> then\n                                Set Pen Color | RGB [255] [255] [0] [256]\n                                Draw Line [-50] [0] [50] To [50] [0] [50] At (x) (y) (z)\n                                Draw Line [-50] [0] [-50] To [50] [0] [-50] At (x) (y) (z)\n                                Draw Line [50] [0] [50] To [50] [0] [-50] At (x) (y) (z)\n                                Draw Line [-50] [0] [50] To [-50] [0] [-50] At (x) (y) (z)\n                                Draw Line [-50] [0] [50] To [-50] [-50] [50] At (x) (y) (z)\n                                Draw Line [-50] [0] [-50] To [-50] [-50] [-50] At (x) (y) (z)\n                                Draw Line [50] [0] [50] To [50] [-50] [50] At (x) (y) (z)\n                                Draw Line [50] [0] [-50] To [50] [-50] [-50] At (x) (y) (z)\n                            else\n                                if < (item (i) of [platform type v]) contains [bounce]?> then\n                                    Set Pen Color | RGB [255] [255] [0] [256]\n                                    Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                                    Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                                    Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                                    Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n                                else\n                                    if < (item (i) of [platform type v]) contains [End]?> then\n                                        Set Pen Color | RGB [0] [255] [0] [256]\n                                        Draw Line [-50] [50] [50] To [50] [50] [50] At (x) (y) (z)\n                                        Draw Line [-50] [50] [-50] To [50] [50] [-50] At (x) (y) (z)\n                                        Draw Line [50] [50] [50] To [50] [50] [-50] At (x) (y) (z)\n                                        Draw Line [-50] [50] [50] To [-50] [50] [-50] At (x) (y) (z)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Move\nchange [rot x v] by ((<key (up arrow v) pressed?> - <key (down arrow v) pressed?>) * (Rot Speed))\nif <[90] < (Rot X)> then\n    set [rot x v] to [90]\nend\nif <(Rot X) < [-90]> then\n    set [rot x v] to [-90]\nend\nchange [rot y v] by ((<key (left arrow v) pressed?> - <key (right arrow v) pressed?>) * (Rot Speed))\nchange [z vel v] by (((<key (w v) pressed?> - <key (s v) pressed?>) * ([cos v] of (Rot Y) )) * (Speed))\nchange [x vel v] by (((<key (s v) pressed?> - <key (w v) pressed?>) * ([sin v] of (Rot Y) )) * (Speed))\nchange [z vel v] by (((<key (d v) pressed?> - <key (a v) pressed?>) * ([sin v] of (Rot Y) )) * (Speed))\nchange [x vel v] by (((<key (d v) pressed?> - <key (a v) pressed?>) * ([cos v] of (Rot Y) )) * (Speed))\n\ndefine P (x) (y) (z)\nset [x v] to (x)\nset [y v] to (y)\nset [z v] to (z)\n\ndefine This rotates Platform around cam Cube Pos (x) (y) (z)\nP=Translate ((X) + (x)) ((Y) + (y)) ((Z) + (z)) By (my variable) (Ty) (Tz)\nP = Rotate (X) (Z) Around +Y axis by (Rot Y) Degrees\nP = Rotate (Y) (Z) Around +X Axis By (Rot X) degrees\nP = Rotate (X) (Y) Around +Z axis by (Rot Z) degrees\n\ndefine Draw Line (x) (y) (z) To (x1) (y1) (z1) At (x2) (y2) (z2)\nGo To (x) (y) (z) With Translation At (x2) (y2) (z2)\nset [x1 v] to (X)\nset [y1 v] to (Y)\nset [z1 v] to (Z)\nGo To (x1) (y1) (z1) With Translation At (x2) (y2) (z2)\nset [x2 v] to (X)\nset [y2 v] to (Y)\nset [z2 v] to (Z)\nif <not <<(Z1) < [1]> and <(Z2) < [1]>>> then\n    Z CLIP\n    set [z1 v] to ((View Factor) / (Z1))\n    set [z2 v] to ((View Factor) / (Z2))\n    go to x: ((X1) * (Z1)) y: ((Y1) * (Z1))\n    pen down\n    go to x: ((X2) * (Z2)) y: ((Y2) * (Z2))\n    pen up\nend\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\n\ndefine P = Rotate (x) (y) Around +Z axis by (angle) degrees\nset [x v] to (((y) * ([sin v] of (angle) )) + ((x) * ([cos v] of (angle) )))\nset [y v] to (((y) * ([cos v] of (angle) )) - ((x) * ([sin v] of (angle) )))\n\ndefine Physics With Collisions (gravity) (friction) (max jump height)\nset [friction v] to (friction)\nchange [falling v] by (1)\nchange [y vel v] by (gravity)\nY Collisions (Y Vel)\nZ Collisions (Z Vel)\nX Collisions (X Vel)\nset [x vel v] to ((X Vel) * (Friction))\nset [z vel v] to ((Z Vel) * (Friction))\nif <<key (space v) pressed?> and <(Falling) < (max jump height)>> then\n    set [y vel v] to [14]\nend\nif <(Ty) < [-600]> then\n    Reset\nend\n\ndefine Y Collisions (y vel)\nchange [ty v] by (Y Vel)\nTest For Collisions [50] [90] [50]\nwhile <(Touching?) = [yes]>\n    if <(y vel) > [0]> then\n        change [ty v] by (-1)\n    else\n        change [ty v] by (1)\n        set [falling v] to [0]\n    end\n    set [y vel v] to [0]\n    Test For Collisions [50] [90] [50]\nend\n\ndefine Test For Collisions (x hitbox) (y hitbox) (z hitbox)\nset [touching? v] to [no]\nset [touching end? v] to [no]\nfor each [counter v] in (length of [platform x pos v])\n    if <<<not <(my variable) < ((item (Counter) of [platform x pos v]) - (x hitbox))>> and <not <(my variable) > ((item (Counter) of [platform x pos v]) + (x hitbox))>>> and <<<not <(Ty) < ((item (Counter) of [platform y pos v]) - (y hitbox))>> and <not <(Ty) > ((item (Counter) of [platform y pos v]) + (y hitbox))>>> and <<not <(Tz) < ((item (Counter) of [platform z pos v]) - (z hitbox))>> and <not <(Tz) > ((item (Counter) of [platform z pos v]) + (z hitbox))>>>>> then\n        if < (item (Counter) of [platform type v]) contains [Platform]?> then\n            set [touching? v] to [yes]\n        else\n            if < (item (Counter) of [platform type v]) contains [Lava]?> then\n                Reset\n            else\n                if < (item (Counter) of [platform type v]) contains [Spike]?> then\n                    if <not <(Ty) > ((item (Counter) of [platform y pos v]) + ((y hitbox) - (15)))>> then\n                        Reset\n                    end\n                else\n                    if << (item (Counter) of [platform type v]) contains [Bounce]?> or < (item (Counter) of [platform type v]) contains [Trampoline]?>> then\n                        set [y vel v] to [30]\n                    else\n                        if < (item (Counter) of [platform type v]) contains [Ice]?> then\n                            set [touching? v] to [yes]\n                            set [friction v] to [1]\n                        else\n                            if < (item (Counter) of [platform type v]) contains [Water]?> then\n                                change [y vel v] by (0.3)\n                                if <key (space v) pressed?> then\n                                    change [y vel v] by (0.25)\n                                end\n                            else\n                                if < (item (Counter) of [platform type v]) contains [Slowness]?> then\n                                    set [touching? v] to [yes]\n                                    set [friction v] to [0.2]\n                                else\n                                    if < (item (Counter) of [platform type v]) contains [invisible]?> then\n                                        set [touching? v] to [yes]\n                                    else\n                                        if < (item (Counter) of [platform type v]) contains [End]?> then\n                                            set [touching end? v] to [yes]\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        stop [this script v]\n    end\nend\n\ndefine X Collisions (x vel)\nchange [my variable v] by (X Vel)\nTest For Collisions [50] [90] [50]\nwhile <(Touching?) = [yes]>\n    if <(x vel) > [0]> then\n        change [my variable v] by (-1)\n    else\n        change [my variable v] by (1)\n    end\n    set [x vel v] to [0]\n    Test For Collisions [50] [90] [50]\nend\n\ndefine Z Collisions (z vel)\nchange [tz v] by (Z Vel)\nTest For Collisions [50] [90] [50]\nwhile <(Touching?) = [yes]>\n    if <(z vel) > [0]> then\n        change [tz v] by (-1)\n    else\n        change [tz v] by (1)\n    end\n    set [z vel v] to [0]\n    Test For Collisions [50] [90] [50]\nend\n\ndefine Reset\nset [x vel v] to [0]\nset [y vel v] to [0]\nset [z vel v] to [0]\nset [rot x v] to [0]\nset [rot y v] to [0]\nset [rot z v] to [0]\nset [rot speed v] to [4]\nset [speed v] to [2]\nset [my variable v] to [0]\nset [ty v] to [200]\nset [tz v] to [0]\n\ndefine Design\ndelete all of [platform x pos v]\ndelete all of [platform y pos v]\ndelete all of [platform z pos v]\ndelete all of [platform type v]\nif <(Level) = [1]> then\n    Add Platform At [0] [0] [0] [platform cube]\n    Add Platform At [0] [0] [1] [platform cube]\n    Add Platform At [0] [0] [2] [platform cube]\n    Add Moving Platform From [0] [0] [4] To [0] [10.01] [4] Type [platform] Speed [20]\n    Add Platform At [0] [10] [5] [platform cube]\n    Add Platform At [0] [10] [6] [platform cube]\n    Add Platform At [0] [10] [7] [platform cube]\n    Add Moving Platform From [0] [10.01] [9] To [0] [20.01] [9] Type [platform] Speed [20]\n    Add Platform At [0] [20] [10] [platform cube]\n    Add Platform At [0] [20] [11] [platform cube]\n    Add Platform At [0] [20] [12] [platform cube]\n    Add Platform At [0] [1] [1] [spike]\n    Add Platform At [0] [11] [6] [spike]\n    Add Platform At [0] [21] [11] [spike]\n    Add Platform At [0] [20] [13] [end cube]\nelse\n    if <(Level) = [2]> then\n        Add Platform At [0] [0] [0] [platform cube]\n        Add Platform At [0] [0] [1] [bounce cube]\n        Add Platform At [0] [3] [2] [bounce cube]\n        Add Platform At [0] [6] [3] [bounce cube]\n        Add Platform At [0] [9] [4] [bounce cube]\n        Add Platform At [0] [12] [5] [bounce cube]\n        Add Platform At [1] [15] [6] [bounce cube]\n        Add Platform At [1] [18] [7] [bounce cube]\n        Add Platform At [1] [21] [8] [bounce cube]\n        Add Platform At [1] [24] [9] [bounce cube]\n        Add Platform At [1] [26] [10] [bounce cube]\n        Add Platform At [2] [29] [12] [bounce cube]\n        Add Platform At [2] [32] [13] [bounce cube]\n        Add Platform At [2] [35] [14] [bounce cube]\n        Add Platform At [2] [38] [15] [bounce cube]\n        Add Platform At [2] [41] [16] [bounce cube]\n        Add Platform At [3] [44] [17] [bounce cube]\n        Add Platform At [3] [47] [18] [bounce cube]\n        Add Platform At [3] [50] [19] [bounce cube]\n        Add Platform At [3] [53] [20] [bounce cube]\n        Add Platform At [3] [56] [21] [bounce cube]\n        Add Platform At [4] [59] [22] [end cube]\n    else\n        if <(Level) = [3]> then\n            Add Platform At [0] [0] [0] [platform cube]\n            Add Platform At [0] [0] [1] [water cube]\n            Add Platform At [0] [0] [2] [water cube]\n            Add Platform At [0] [0] [3] [water cube]\n            Add Platform At [0] [0] [4] [water cube]\n            Add Platform At [0] [0] [5] [water cube]\n            Add Platform At [0] [0] [6] [lava cube]\n            Add Platform At [1] [0] [6] [water cube]\n            Add Platform At [2] [0] [6] [water cube]\n            Add Platform At [3] [0] [6] [water cube]\n            Add Platform At [4] [0] [6] [water cube]\n            Add Platform At [5] [0] [6] [water cube]\n            Add Platform At [6] [0] [6] [end cube]\n        else\n            if <(Level) = [4]> then\n                Add Platform At [0] [0] [0] [platform cube]\n                Add Platform At [0] [0] [-1] [platform cube]\n                Add Platform At [0] [0] [-2] [platform cube]\n                Add Platform At [0] [0] [-3] [platform cube]\n                Add Platform At [0] [0] [-4] [end cube]\n                Add Platform At [0] [0] [1] [lava cube]\n                Add Platform At [0] [0] [2] [lava cube]\n                Add Platform At [0] [0] [3] [lava cube]\n                Add Platform At [0] [0] [4] [lava cube]\n                Add Platform At [0] [0] [5] [lava cube]\n                Add Platform At [0] [0] [6] [lava cube]\n                Add Platform At [0] [0] [7] [lava cube]\n                Add Platform At [0] [0] [8] [lava cube]\n                Add Platform At [0] [0] [9] [end cube]\n            else\n                if <(Level) = [5]> then\n                    Add Platform At [0] [-2] [0] [water cube]\n                    Add Platform At [0] [-1] [0] [water cube]\n                    Add Platform At [0] [0] [0] [water cube]\n                    Add Platform At [0] [1] [0] [water cube]\n                    Add Platform At [0] [2] [0] [water cube]\n                    Add Platform At [0] [3] [0] [water cube]\n                    Add Platform At [0] [4] [0] [water cube]\n                    Add Platform At [0] [5] [0] [water cube]\n                    Add Platform At [0] [6] [0] [water cube]\n                    Add Platform At [0] [7] [0] [water cube]\n                    Add Platform At [0] [8] [0] [water cube]\n                    Add Platform At [0] [9] [0] [water cube]\n                    Add Platform At [0] [10] [0] [water cube]\n                    Add Platform At [0] [11] [0] [water cube]\n                    Add Platform At [0] [12] [0] [water cube]\n                    Add Platform At [0] [13] [0] [water cube]\n                    Add Platform At [0] [14] [0] [water cube]\n                    Add Platform At [0] [15] [0] [water cube]\n                    Add Platform At [0] [16] [0] [end cube]\n                else\n                    if <(Level) = [6]> then\n                        Add Platform At [0] [0] [0] [platform]\n                        Add Platform At [0] [0] [1] [ice]\n                        Add Platform At [0] [0] [2] [ice]\n                        Add Platform At [0] [0] [3] [ice]\n                        Add Platform At [0] [0] [7] [ice]\n                        Add Platform At [0] [0] [8] [ice]\n                        Add Platform At [0] [0] [9] [ice]\n                        Add Platform At [0] [0] [13] [ice]\n                        Add Platform At [0] [0] [14] [ice]\n                        Add Platform At [0] [0] [15] [ice]\n                        Add Platform At [0] [-1] [19] [end cube]\n                        Add Platform At [0] [0] [19] [end cube]\n                        Add Platform At [0] [1] [19] [end cube]\n                    else\n                        if <(Level) = [7]> then\n                            Add Platform At [-1] [0] [0] [platform]\n                            Add Platform At [0] [0] [0] [platform]\n                            Add Platform At [1] [0] [0] [platform]\n                            Add Platform At [0] [0] [1] [invisible]\n                            Add Platform At [0] [0] [2] [invisible]\n                            Add Platform At [0] [0] [3] [invisible]\n                            Add Platform At [0] [0] [4] [invisible]\n                            Add Platform At [0] [0] [5] [invisible]\n                            Add Platform At [0] [5] [1] [platform]\n                            Add Platform At [0] [5] [2] [platform]\n                            Add Platform At [0] [5] [3] [platform]\n                            Add Platform At [0] [5] [4] [platform]\n                            Add Platform At [0] [5] [5] [platform]\n                            Add Platform At [1] [0] [5] [invisible]\n                            Add Platform At [2] [0] [5] [invisible]\n                            Add Platform At [3] [0] [5] [invisible]\n                            Add Platform At [4] [0] [5] [invisible]\n                            Add Platform At [5] [0] [5] [invisible]\n                            Add Platform At [1] [5] [5] [platform]\n                            Add Platform At [2] [5] [5] [platform]\n                            Add Platform At [3] [5] [5] [platform]\n                            Add Platform At [4] [5] [5] [platform]\n                            Add Platform At [5] [5] [5] [platform]\n                            Add Platform At [5] [5] [6] [end]\n                            Add Platform At [5] [0] [6] [end]\n                        else\n                            if <(Level) = [8]> then\n                                Add Platform At [0] [0] [0] [platform]\n                                Add Platform At [-1] [0] [0] [platform]\n                                Add Platform At [1] [0] [0] [platform]\n                                Add Platform At [-1] [0] [1] [platform]\n                                Add Platform At [1] [0] [1] [platform]\n                                Add Platform At [0] [0] [2] [platform]\n                                Add Platform At [-1] [0] [3] [platform]\n                                Add Platform At [1] [0] [3] [platform]\n                                Add Platform At [0] [0] [4] [platform]\n                                Add Platform At [-1] [0] [5] [platform]\n                                Add Platform At [1] [0] [5] [platform]\n                                Add Platform At [0] [0] [6] [platform]\n                                Add Platform At [-1] [0] [7] [platform]\n                                Add Platform At [1] [0] [7] [platform]\n                                Add Platform At [0] [0] [8] [platform]\n                                Add Platform At [-1] [0] [9] [platform]\n                                Add Platform At [1] [0] [9] [platform]\n                                Add Platform At [0] [0] [10] [platform]\n                                Add Platform At [-1] [0] [11] [platform]\n                                Add Platform At [1] [0] [11] [platform]\n                                Add Platform At [0] [0] [12] [platform]\n                                Add Platform At [0] [1] [1] [spike]\n                                Add Platform At [-1] [1] [2] [spike]\n                                Add Platform At [1] [1] [2] [spike]\n                                Add Platform At [0] [1] [3] [spike]\n                                Add Platform At [-1] [1] [4] [spike]\n                                Add Platform At [1] [1] [4] [spike]\n                                Add Platform At [0] [1] [5] [spike]\n                                Add Platform At [-1] [1] [6] [spike]\n                                Add Platform At [1] [1] [6] [spike]\n                                Add Platform At [0] [1] [7] [spike]\n                                Add Platform At [-1] [1] [8] [spike]\n                                Add Platform At [1] [1] [8] [spike]\n                                Add Platform At [0] [1] [9] [spike]\n                                Add Platform At [-1] [1] [10] [spike]\n                                Add Platform At [1] [1] [10] [spike]\n                                Add Platform At [0] [1] [11] [spike]\n                                Add Platform At [-1] [1] [12] [spike]\n                                Add Platform At [1] [1] [12] [spike]\n                                Add Moving Platform From [0] [0] [14] To [0] [10.01] [14] Type [end cube] Speed [20]\n                            else\n                                if <(Level) = [9]> then\n                                    Add Platform At [0] [0] [0] [platform cube]\n                                    Add Platform At [0] [0] [1] [platform cube]\n                                    Add Platform At [0] [0] [2] [platform cube]\n                                    Add Platform At [0] [0] [3] [platform cube]\n                                    Add Platform At [0] [0] [4] [platform cube]\n                                    Add Platform At [0] [0] [5] [bounce cube]\n                                    Add Platform At [0] [4] [0] [bounce cube]\n                                    Add Platform At [0] [4] [1] [platform cube]\n                                    Add Platform At [0] [4] [2] [platform cube]\n                                    Add Platform At [0] [4] [3] [platform cube]\n                                    Add Platform At [0] [4] [4] [platform cube]\n                                    Add Platform At [0] [8] [1] [platform cube]\n                                    Add Platform At [0] [8] [2] [platform cube]\n                                    Add Platform At [0] [8] [3] [platform cube]\n                                    Add Platform At [0] [8] [4] [bounce cube]\n                                    Add Platform At [0] [12] [3] [platform cube]\n                                    Add Platform At [0] [12] [2] [platform cube]\n                                    Add Platform At [0] [12] [1] [end cube]\n                                else\n                                    if <(Level) = [10]> then\n                                        Add Platform At [0] [0] [0] [platform]\n                                        Add Platform At [0] [0] [1] [ice]\n                                        Add Platform At [0] [0] [2] [ice]\n                                        Add Platform At [0] [0] [3] [ice]\n                                        Add Platform At [0] [0] [4] [ice]\n                                        Add Platform At [0] [0] [5] [ice]\n                                        Add Platform At [0] [0] [6] [ice]\n                                        Add Platform At [0] [0] [7] [ice]\n                                        Add Platform At [0] [0] [8] [ice]\n                                        Add Platform At [0] [0] [9] [platform]\n                                        Add Platform At [1] [0] [9] [ice]\n                                        Add Platform At [2] [0] [9] [ice]\n                                        Add Platform At [3] [0] [9] [ice]\n                                        Add Platform At [4] [0] [9] [ice]\n                                        Add Platform At [5] [0] [9] [ice]\n                                        Add Platform At [6] [0] [9] [ice]\n                                        Add Platform At [7] [0] [9] [ice]\n                                        Add Platform At [8] [0] [9] [ice]\n                                        Add Platform At [9] [0] [9] [platform]\n                                        Add Platform At [9] [0] [9] [ice]\n                                        Add Platform At [9] [0] [8] [ice]\n                                        Add Platform At [9] [0] [7] [ice]\n                                        Add Platform At [9] [0] [6] [ice]\n                                        Add Platform At [9] [0] [5] [ice]\n                                        Add Platform At [9] [0] [4] [ice]\n                                        Add Platform At [9] [0] [3] [ice]\n                                        Add Platform At [9] [0] [2] [ice]\n                                        Add Platform At [9] [0] [1] [ice]\n                                        Add Platform At [9] [0] [0] [end]\n                                    else\n                                        if <(Level) = [11]> then\n                                            Add Platform At [0] [0] [0] [platform]\n                                            Add Platform At [1] [0] [0] [invisible]\n                                            Add Platform At [2] [0] [0] [invisible]\n                                            Add Platform At [3] [0] [0] [invisible]\n                                            Add Platform At [4] [0] [0] [invisible]\n                                            Add Platform At [5] [0] [0] [end]\n                                            Add Platform At [-5] [0] [0] [end]\n                                            Add Platform At [0] [0] [5] [end]\n                                            Add Platform At [0] [0] [-5] [end]\n                                        else\n                                            if <(Level) = [12]> then\n                                                Add Platform At [0] [0] [0] [platform]\n                                                Add Platform At [0] [0] [1] [platform]\n                                                Add Platform At [0] [0] [2] [platform]\n                                                Add Platform At [0] [0] [3] [platform]\n                                                Add Platform At [0] [0] [4] [platform]\n                                                Add Platform At [0] [0] [5] [platform]\n                                                Add Platform At [0] [0] [-1] [platform]\n                                                Add Platform At [0] [1] [5] [invisible cube]\n                                                Add Platform At [0] [2] [5] [invisible cube]\n                                                Add Platform At [0] [0] [6] [end]\n                                                Add Platform At [0] [0] [-1] [end]\n                                            else\n                                                if <(Level) = [13]> then\n                                                    Add Platform At [0] [0] [0] [platform cube]\n                                                    Add Platform At [0] [0] [2] [platform cube]\n                                                    Add Platform At [0] [0] [4] [platform cube]\n                                                    Add Platform At [0] [0] [6] [platform cube]\n                                                    Add Platform At [0] [0] [8] [platform cube]\n                                                    Add Platform At [0] [0] [10] [platform cube]\n                                                    Add Platform At [0] [0] [12] [platform cube]\n                                                    Add Platform At [0] [0] [14] [platform cube]\n                                                    Add Moving Platform From [0] [0] [15] To [0] [0] [19] Type [platform] Speed [20]\n                                                    Add Platform At [0] [0] [20] [platform]\n                                                    Add Platform At [0] [0] [22] [platform]\n                                                    Add Platform At [0] [0] [24] [end]\n                                                else\n                                                    if <(Level) = [14]> then\n                                                        Add Platform At [0] [0] [0] [platform cube]\n                                                        Add Platform At [0] [4] [0] [platform cube]\n                                                        Add Platform At [1] [1] [0] [platform cube]\n                                                        Add Platform At [1] [2] [0] [platform cube]\n                                                        Add Platform At [1] [3] [0] [platform cube]\n                                                        Add Platform At [1] [4] [0] [platform cube]\n                                                        Add Platform At [0] [1] [1] [platform cube]\n                                                        Add Platform At [0] [2] [1] [platform cube]\n                                                        Add Platform At [0] [3] [1] [platform cube]\n                                                        Add Platform At [0] [4] [1] [platform cube]\n                                                        Add Platform At [0] [1] [-1] [platform cube]\n                                                        Add Platform At [0] [2] [-1] [platform cube]\n                                                        Add Platform At [0] [3] [-1] [platform cube]\n                                                        Add Platform At [0] [4] [-1] [platform cube]\n                                                        Add Platform At [-1] [1] [0] [platform cube]\n                                                        Add Platform At [-1] [2] [0] [platform cube]\n                                                        Add Platform At [-1] [3] [0] [platform cube]\n                                                        Add Platform At [-1] [4] [0] [platform cube]\n                                                        show variable [☁ highscore v]\n                                                        if <(☁ Highscore) > (timer)> then\n                                                            set [☁ highscore v] to (timer)\n                                                            stop [all v]\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Add Platform At (x) (y) (z) (type)\nadd ((x) * (100)) to [platform x pos v]\nadd ((y) * (100)) to [platform y pos v]\nadd ((z) * (100)) to [platform z pos v]\nadd (type) to [platform type v]\n\ndefine Calculate Distance\ndelete all of [block distance v]\nfor each [counter v] in (length of [platform x pos v])\n    add (round ([sqrt v] of ((((my variable) - (item (Counter) of [platform x pos v])) * ((my variable) - (item (Counter) of [platform x pos v]))) + ((((Ty) - (item (Counter) of [platform y pos v])) * ((Ty) - (item (Counter) of [platform y pos v]))) + (((Tz) - (item (Counter) of [platform z pos v])) * ((Tz) - (item (Counter) of [platform z pos v]))))) )) to [block distance v]\nend\n\ndefine Sort\ndelete all of [sorted v]\ndelete all of [sorted order v]\ndelete all of [which one v]\nfor each [counter v] in (length of [block distance v])\n    add (Counter) to [which one v]\nend\nfor each [counter v] in (length of [block distance v])\n    Sort (item (Counter) of [block distance v]) into List\nend\n\ndefine Add Moving Platform From (x) (y) (z) To (x1) (y1) (z1) Type (type) Speed (speed)\nset [coefficient v] to ((([sin v] of ((timer) * (speed)) ) + (1)) / (2))\nAdd Platform At ((x) + ((Coefficient) * ((x1) - (x)))) ((y) + ((Coefficient) * ((y1) - (y)))) ((z) + ((Coefficient) * ((z1) - (z)))) (type)\n\nchange [level v] by (1)\n\n@tb\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\n