3D Platformer V2
@Stage\n\n@cube\n\nwhen flag clicked\nhide\nset size to (100) %\ndelete all of [level v]\nAdd Cubes type [3] from [-1] [-2] [2] to [7] [1] [2]\nAdd Cubes type [2] from [-1] [-2] [-1] to [1] [-1] [1]\nAdd Cubes type [6] from [2] [-2] [-1] to [4] [-2] [1]\nAdd Cubes type [2] from [5] [-2] [-1] to [7] [0] [1]\nset [x v] to [0]\nset [y v] to [0]\nset [z v] to [0]\nset [xv v] to [0]\nset [zv v] to [0]\nset [yv v] to [0]\nset [shadow y v] to [0]\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [camera z v] to [0]\nforever\n    Render\n    Physics\nend\n\ndefine Add cube (type) at (x) (y) (z)\nadd (type) to [level v]\nadd (x) to [level v]\nadd (y) to [level v]\nadd (z) to [level v]\n\ndefine Render\nerase all\npen up\ndelete all of [front level v]\nset [i v] to [1]\nrepeat ((length of [level v]) / (4))\n    if <<((Y) - (1)) < (item ((i) + (2)) of [level v])> and <<((X) - (1)) < (item ((i) + (1)) of [level v])> and <(item ((i) + (3)) of [level v]) < ((Z) + (1))>>> then\n        add (i) to [front level v]\n    else\n        switch costume to (item ((i) + (0)) of [level v])\n        go to (item ((i) + (1)) of [level v]) (item ((i) + (2)) of [level v]) (item ((i) + (3)) of [level v])\n        if <<(item ((i) + (0)) of [level v]) = [5]> or <(item ((i) + (0)) of [level v]) = [6]>> then\n            change y by (([sin v] of (((timer) + ((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v]))) * (150)) ) * (4))\n        end\n        stamp\n    end\n    change [i v] by (4)\nend\nif <(Shadow Y) > [-10]> then\n    go to (X) (Shadow Y) (Z)\n    switch costume to (shadow v)\n    stamp\nend\ngo to (X) (Y) (Z)\nswitch costume to (player v)\nstamp\nset [j v] to [1]\nrepeat (length of [front level v])\n    set [i v] to (item (j) of [front level v])\n    switch costume to (item ((i) + (0)) of [level v])\n    go to (item ((i) + (1)) of [level v]) (item ((i) + (2)) of [level v]) (item ((i) + (3)) of [level v])\n    stamp\n    change [j v] by (1)\nend\n\nwhen I start as a clone\nshow\n\ndefine Add Cubes type (type) from (x1) (y1) (z1) to (x2) (y2) (z2)\nset [i v] to (y1)\nrepeat (((y2) - (y1)) + (1))\n    set [j v] to (z2)\n    repeat (((z2) - (z1)) + (1))\n        set [k v] to (x1)\n        repeat (((x2) - (x1)) + (1))\n            Add cube (type) at (k) (i) (j)\n            change [k v] by (1)\n        end\n        change [j v] by (-1)\n    end\n    change [i v] by (1)\nend\n\ndefine Physics\nif <key (left arrow v) pressed?> then\n    change [xv v] by (-2)\nend\nif <key (right arrow v) pressed?> then\n    change [xv v] by (2)\nend\nset [xv v] to ((xv) * (0.8))\nChange x by ((round (xv)) * (0.05))\nif <key (down arrow v) pressed?> then\n    change [zv v] by (-2)\nend\nif <key (up arrow v) pressed?> then\n    change [zv v] by (2)\nend\nset [zv v] to ((zv) * (0.8))\nChange z by ((round (zv)) * (0.05))\nchange [yv v] by (-1)\nif <<key (space v) pressed?> and <(can jump?) = [1]>> then\n    set [yv v] to [12]\nend\nChange y by ((round (yv)) * (0.05))\nShadow\nchange [camera x v] by (((X) - (Camera X)) / (10))\nchange [camera y v] by (((Y) - (Camera Y)) / (10))\nchange [camera z v] by (((Z) - (Camera Z)) / (10))\n\ndefine Collisions\ndelete all of [collisions v]\nset [i v] to [1]\nrepeat ((length of [level v]) / (4))\n    if <<((X) + (1)) > (item ((i) + (1)) of [level v])> and <((item ((i) + (1)) of [level v]) + (1)) > (X)>> then\n        if <<((Y) + (2)) > (item ((i) + (2)) of [level v])> and <((item ((i) + (2)) of [level v]) + (1)) > (Y)>> then\n            if <<((Z) + (1)) > (item ((i) + (3)) of [level v])> and <((item ((i) + (3)) of [level v]) + (1)) > (Z)>> then\n                add (item ((i) + (0)) of [level v]) to [collisions v]\n            end\n        end\n    end\n    change [i v] by (4)\nend\nif  then\n    set [x v] to [0]\n    set [y v] to [0]\n    set [z v] to [0]\n    set [xv v] to [0]\n    set [yv v] to [0]\n    set [zv v] to [0]\n    set [camera x v] to [0]\n    set [camera y v] to [0]\n    set [camera z v] to [0]\nend\n\ndefine Change x by (xv)\nchange [x v] by (xv)\nCollisions\nif <(length of [collisions v]) > [0]> then\n    set [xv v] to [0]\n    if <(xv) > [0]> then\n        set [x v] to ([floor v] of (X) )\n    end\n    if <[0] > (xv)> then\n        set [x v] to ([ceiling v] of (X) )\n    end\nend\n\ndefine Change y by (yv)\nset [can jump? v] to [0]\nchange [y v] by (yv)\nCollisions\nif <(length of [collisions v]) > [0]> then\n    set [yv v] to [0]\n    if <(yv) > [0]> then\n        set [y v] to ([floor v] of (Y) )\n    end\n    if <[0] > (yv)> then\n        set [y v] to ([ceiling v] of (Y) )\n        set [shadow y v] to (Y)\n        set [can jump? v] to [1]\n    end\nend\n\ndefine Change z by (zv)\nchange [z v] by (zv)\nCollisions\nif <(length of [collisions v]) > [0]> then\n    set [zv v] to [0]\n    if <(zv) > [0]> then\n        set [z v] to ([floor v] of (Z) )\n    end\n    if <[0] > (zv)> then\n        set [z v] to ([ceiling v] of (Z) )\n    end\nend\n\ndefine Shadow\nif <(Shadow Y) > [-10]> then\n    set [i v] to [1]\n    set [good? v] to [0]\n    repeat ((length of [level v]) / (4))\n        if <<((X) + (1)) > (item ((i) + (1)) of [level v])> and <((item ((i) + (1)) of [level v]) + (1)) > (X)>> then\n            if <<((Z) + (1)) > (item ((i) + (3)) of [level v])> and <((item ((i) + (3)) of [level v]) + (1)) > (Z)>> then\n                if <(item ((i) + (2)) of [level v]) = ((Shadow Y) - (1))> then\n                    set [good? v] to [1]\n                end\n                if <(item ((i) + (2)) of [level v]) = (Shadow Y)> then\n                    set [shadow y v] to ((item ((i) + (2)) of [level v]) + (1))\n                    set [good? v] to [1]\n                end\n            end\n        end\n        change [i v] by (4)\n    end\n    if <(good?) = [0]> then\n        change [shadow y v] by (-1)\n        Shadow\n    end\nend\n\ndefine go to (x) (y) (z)\ngo to x: (((((x) - (Camera X)) * (16)) + (((z) - (Camera Z)) * (16))) + ((mouse x) * (-0.1))) y: ((((((x) - (Camera X)) * (-9)) + (((y) - (Camera Y)) * (19))) + (((z) - (Camera Z)) * (9))) + ((mouse y) * (-0.1)))\n\n@Sprite1\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\n\n
I'm working on a Isometric 3D game, here's a preview of what I have so far...