Red Platformer

Instructions: このゲームの本当の共有日：4/2\nアップデートしました！(10ステージ追加した)\n❤と⭐が3000超えたらまたアップデートします！！\n”Press ❤ and ⭐ to become invincible!\n今回は長いプラットフォーマーを作りました！！\n❤と⭐、フォロー、拡散をよろしくお願いします。\n《操作方法》\n矢印キーまたはタップで操作します。\n下矢印キーまたは画面の下の方を押せばしゃがめます\n敵は踏めば倒せます\nとげや溶岩に当たると死にます\n上に上って次のステージに行くステージや下に下って次のステージに行くステージもあります\n《クレジット》\nBGM：@-xaf-、PIKASONIC、alan walker、 NCS\n、TheFatRat\n背景：@hati32

@Stage\n\nwhen flag clicked\nwait (1) seconds\nforever\n    wait (pick random (1) to (2)) seconds\n    play sound [Mc  v] until done\n    wait (pick random (1) to (5)) seconds\n    play sound [Mc2 v] until done\nend\n\n@Game\n\nif  then\nend\n\ndefine Enter list\nrepeat (length of [cube-viewing v])\n    set [cube viewing highest v] to [9999999999]\n    set [cube viewing order v] to [1]\n    repeat (length of [cube-viewing v])\n        if <(item (Cube viewing order) of [cube-viewing v]) < (Cube viewing highest)> then\n            set [cube enter pos v] to (Cube viewing order)\n            set [cube viewing highest v] to (item (Cube viewing order) of [cube-viewing v])\n        end\n        change [cube viewing order v] by (1)\n    end\n    Add cube (item (Cube enter pos) of [cube-type v]) at (item (Cube enter pos) of [cube-x v]) (item (Cube enter pos) of [cube-y v]) (item (Cube enter pos) of [cube-z v])\n    delete (Cube enter pos) of [cube-x v]\n    delete (Cube enter pos) of [cube-y v]\n    delete (Cube enter pos) of [cube-z v]\n    delete (Cube enter pos) of [cube-type v]\n    delete (Cube enter pos) of [cube-viewing v]\nend\n\ndefine spawn mob x: (x) y: (y) z: (z) type: (type) rangex: (rx1) (rx2) rangez: (rz1) (rz2)\nadd (x) to [_mobdata v]\nadd (y) to [_mobdata v]\nadd (z) to [_mobdata v]\nadd (rx1) to [_mobdata v]\nadd (rx2) to [_mobdata v]\nadd (rx1) to [_mobdata v]\nadd (rz2) to [_mobdata v]\nadd (x) to [_mobx v]\nadd (y) to [_moby v]\nadd (z) to [_mobz v]\nadd (type) to [_mobtype v]\nadd [0] to [_mobxv v]\nadd [0] to [_mobyv v]\nadd [0] to [_mobzv v]\nadd [0] to [_mobmovex v]\nadd [0] to [_mobmovey v]\nadd [0] to [_mobmovez v]\nadd [0] to [_mobcanjump? v]\n\ndefine collisions!\nif <(_AreYouMob?) = [0]> then\n    Collisions (player - x) (player - y) (player - z)\nelse\n    Collisions (mob-x) (mob-y) (mob-z)\nend\n\ndefine collision to list\nif < [234789#%&+=*</] contains (item ((i) + ()) of [level - tiles v])?> then\n    add [1] to [collision v]\nelse\n    if < [5] contains (item ((i) + ()) of [level - tiles v])?> then\n        add [2] to [collision v]\n    else\n        if < [6^] contains (item ((i) + ()) of [level - tiles v])?> then\n            add [3] to [collision v]\n        else\n            if < [!] contains (item ((i) + ()) of [level - tiles v])?> then\n                add [4] to [collision v]\n            else\n                if < [:] contains (item ((i) + ()) of [level - tiles v])?> then\n                    add [6] to [collision v]\n                else\n                    if < [?] contains (item ((i) + ()) of [level - tiles v])?> then\n                        add [7] to [collision v]\n                    end\n                end\n            end\n        end\n    end\nend\nif < [=] contains (item ((i) + ()) of [level - tiles v])?> then\n    add [5] to [collision v]\nend\n\ndefine Shadow [ not in use ]\nset [i v] to [1]\nset [good? v] to [0]\nrepeat ((length of [level - tiles v]) / (4))\n    if <<((player - x) + (1)) > (item ((i) + (1)) of [level - tiles v])> and <((item ((i) + (1)) of [level - tiles v]) + (1)) > (player - x)>> then\n        if <<((player - z) + (1)) > (item ((i) + (3)) of [level - tiles v])> and <((item ((i) + (3)) of [level - tiles v]) + (1)) > (player - z)>> then\n            if <(item ((i) + (2)) of [level - tiles v]) = ((Shadow Y) - (1))> then\n                set [good? v] to [1]\n            end\n            if <(item ((i) + (2)) of [level - tiles v]) = (Shadow Y)> then\n                set [shadow y v] to ((item ((i) + (2)) of [level - tiles v]) + (1))\n                set [good? v] to [1]\n            end\n        end\n    end\n    change [i v] by (4)\nend\nif <<(good?) = [0]> and <(Shadow Y) > [-10]>> then\n    change [shadow y v] by (-1)\n    Shadow [ not in use ]\nend\n\ndefine tiles_SpecialEffects\nif <<(item ((i) + (0)) of [level - total - renderer v]) = [6]> or <(item ((i) + (0)) of [level - total - renderer v]) = [5]>> then\n    change y by (([sin v] of (((timer) + ((item ((i) + (1)) of [level - total - renderer v]) + (item ((i) + (1)) of [level - total - renderer v]))) * (150)) ) * (4))\nend\nset [ghost v] effect to (0)\nif  then\n    set [ghost v] effect to (70)\nend\n\nwhen flag clicked\nset [_areyoumob? v] to [0]\nset [level v] to [0]\nhide\nset size to (100) %\nwin\nReset\nforever\n    Render\n    set [_areyoumob? v] to [0]\n    Physics\n    Update Mobs\nend\n\ndefine Reset\nif <(_AreYouMob?) = [0]> then\n    set [player - x v] to [0]\n    set [player - y v] to [5]\n    set [player - z v] to [0]\n    set [player - xv v] to [0]\n    set [player - zv v] to [0]\n    set [player - yv v] to [0]\n    set [shadow y v] to [10]\nelse\n    set [mob-x v] to (item (1) of [_mobdata v])\n    set [mob-xv v] to [0]\n    set [mob-y v] to (item (2) of [_mobdata v])\n    set [mob-yv v] to [0]\n    set [mob-z v] to (item (3) of [_mobdata v])\n    set [mob-zv v] to [0]\n    set [mob - willingjump v] to [0]\n    set [mob - willingup v] to [0]\n    set [mob - willingright v] to [0]\nend\n\nwhen I receive [thumbnail v]\nswitch costume to (25bba0d5-91ae-4365-b61b-013400c2c7e5 v)\nshow\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nwhen I start as a clone\nshow\n\ndefine Old Rendering Engine [ not in use ]\ndelete all of [front level v]\nset [i v] to [1]\nrepeat ((length of [level - tiles v]) / (4))\n    if <<((player - y) - (1)) < (item ((i) + (2)) of [level - tiles v])> and <<((player - x) - (1)) < (item ((i) + (1)) of [level - tiles v])> and <(item ((i) + (3)) of [level - tiles v]) < ((player - z) + (1))>>> then\n        add (i) to [front level v]\n    else\n        switch costume to (join [cube] (item (i) of [level - tiles v]))\n        go to (item ((i) + (1)) of [level - tiles v]) (item ((i) + (2)) of [level - tiles v]) (item ((i) + (3)) of [level - tiles v])\n        if <<(item ((i) + (0)) of [level - tiles v]) = [5]> or <(item ((i) + (0)) of [level - tiles v]) = [6]>> then\n            change y by (([sin v] of (((timer) + ((item ((i) + (1)) of [level - tiles v]) + (item ((i) + (1)) of [level - tiles v]))) * (150)) ) * (4))\n        end\n        stamp\n    end\n    change [i v] by (4)\nend\nif <(Shadow Y) > [-10]> then\n    go to (player - x) (Shadow Y) (player - z)\n    switch costume to (shadow v)\n    stamp\nend\ngo to (player - x) (player - y) (player - z)\nswitch costume to (cube-player1 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 (join [cube] (item (i) of [level - tiles v]))\n    go to (item ((i) + (1)) of [level - tiles v]) (item ((i) + (2)) of [level - tiles v]) (item ((i) + (3)) of [level - tiles v])\n    stamp\n    change [j v] by (1)\nend\ngo to x: (0) y: (0)\nset size to (100) %\nswitch costume to (eage1 v)\nstamp\n\ndefine Update Mobs\nset [_areyoumob? v] to [1]\nset [_mobcheckpos v] to [0]\nrepeat (length of [_mobx v])\n    change [_mobcheckpos v] by (1)\n    set [mob-x v] to (item (_MobCheckPos) of [_mobx v])\n    set [mob-y v] to (item (_MobCheckPos) of [_moby v])\n    set [mob-z v] to (item (_MobCheckPos) of [_mobz v])\n    set [mob-xv v] to (item (_MobCheckPos) of [_mobxv v])\n    set [mob-yv v] to (item (_MobCheckPos) of [_mobyv v])\n    set [mob-zv v] to (item (_MobCheckPos) of [_mobzv v])\n    set [mob_canjump v] to (item (_MobCheckPos) of [_mobcanjump? v])\n    if <(pick random (1) to (20)) = [1]> then\n        replace item (_MobCheckPos) of [_mobmovex v] with (pick random (1) to (-1))\n    end\n    if <(pick random (1) to (20)) = [1]> then\n        replace item (_MobCheckPos) of [_mobmovey v] with (pick random (1) to (-1))\n    end\n    if <(pick random (1) to (20)) = [1]> then\n        replace item (_MobCheckPos) of [_mobmovez v] with (pick random (1) to (-1))\n    end\n    set [mob - willingright v] to (item (_MobCheckPos) of [_mobmovex v])\n    set [mob - willingjump v] to (item (_MobCheckPos) of [_mobmovey v])\n    set [mob - willingup v] to (item (_MobCheckPos) of [_mobmovez v])\n    Physics - mobs\n    if <(mob-x) < (item ((((_MobCheckPos) - (1)) * (7)) + (4)) of [_mobdata v])> then\n        set [mob-x v] to (item ((((_MobCheckPos) - (1)) * (7)) + (4)) of [_mobdata v])\n    end\n    if <(item ((((_MobCheckPos) - (1)) * (7)) + (5)) of [_mobdata v]) < (mob-x)> then\n        set [mob-x v] to (item ((((_MobCheckPos) - (1)) * (7)) + (5)) of [_mobdata v])\n    end\n    if <(mob-z) < (item ((((_MobCheckPos) - (1)) * (7)) + (6)) of [_mobdata v])> then\n        set [mob-z v] to (item ((((_MobCheckPos) - (1)) * (7)) + (6)) of [_mobdata v])\n    end\n    if <(item ((((_MobCheckPos) - (1)) * (7)) + (7)) of [_mobdata v]) < (mob-z)> then\n        set [mob-z v] to (item ((((_MobCheckPos) - (1)) * (7)) + (7)) of [_mobdata v])\n    end\n    replace item (_MobCheckPos) of [_mobx v] with (mob-x)\n    replace item (_MobCheckPos) of [_moby v] with (mob-y)\n    replace item (_MobCheckPos) of [_mobz v] with (mob-z)\n    replace item (_MobCheckPos) of [_mobxv v] with (mob-xv)\n    replace item (_MobCheckPos) of [_mobyv v] with (mob-yv)\n    replace item (_MobCheckPos) of [_mobzv v] with (mob-zv)\n    replace item (_MobCheckPos) of [_mobcanjump? v] with (Mob_CanJump)\nend\n\ndefine Add cube (type) at (x) (y) (z)\nadd (type) to [level - tiles v]\nadd (x) to [level - tiles v]\nadd (y) to [level - tiles v]\nadd (z) to [level - tiles v]\n\ndefine Change y by (yv)\nif <(_AreYouMob?) = [0]> then\n    change [player - y v] by (yv)\n    set [canjump? v] to [0]\nelse\n    change [mob-y v] by (yv)\n    set [mob_canjump v] to [0]\nend\ncollisions!\nif <[collision v] contains [1]?> then\n    if <(_AreYouMob?) = [0]> then\n        set [player - yv v] to [0]\n    else\n        set [mob-yv v] to [0]\n    end\n    if <(yv) > [0]> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - y v] to ([floor v] of (player - y) )\n        else\n            set [mob-y v] to ([floor v] of (mob-y) )\n        end\n    end\n    if <[0] > (yv)> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - y v] to ([ceiling v] of (player - y) )\n            set [canjump? v] to [1]\n        else\n            set [mob-y v] to ([ceiling v] of (mob-y) )\n            set [mob_canjump v] to [1]\n        end\n    end\nend\n\ndefine Change z by (zv)\nif <[collision v] contains [2]?> then\n    if <(_AreYouMob?) = [0]> then\n        change [player - z v] by ((zv) / (2.3))\n    else\n        change [mob-z v] by ((zv) / (2.3))\n    end\nelse\n    if <(_AreYouMob?) = [0]> then\n        change [player - z v] by (zv)\n    else\n        change [mob-z v] by (zv)\n    end\nend\ncollisions!\nif <[collision v] contains [1]?> then\n    if <(_AreYouMob?) = [0]> then\n        change [player - z v] by (0)\n    else\n        change [mob-z v] by (0)\n    end\n    if <(zv) > [0]> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - z v] to ([floor v] of (player - z) )\n        else\n            set [mob-z v] to ([floor v] of (mob-z) )\n        end\n    end\n    if <[0] > (zv)> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - z v] to ([ceiling v] of (player - z) )\n        else\n            set [mob-z v] to ([ceiling v] of (mob-z) )\n        end\n    end\nend\n\ndefine set-level\ndelete all of [level - mobs v]\ndelete all of [level - total - renderer v]\nadd [-player1] to [level - mobs v]\nadd (player - x) to [level - mobs v]\nadd (player - y) to [level - mobs v]\nadd (player - z) to [level - mobs v]\nadd [-player2] to [level - mobs v]\nadd (player - x) to [level - mobs v]\nadd ((player - y) + (1)) to [level - mobs v]\nadd (player - z) to [level - mobs v]\nset [i v] to [0]\nrepeat (length of [_mobx v])\n    change [i v] by (1)\n    add (item (i) of [_mobtype v]) to [level - mobs v]\n    add (item (i) of [_mobx v]) to [level - mobs v]\n    add (item (i) of [_moby v]) to [level - mobs v]\n    add (item (i) of [_mobz v]) to [level - mobs v]\nend\nset [i v] to [0]\nrepeat (length of [level - tiles v])\n    change [i v] by (1)\n    add (item (i) of [level - tiles v]) to [level - total - renderer v]\nend\nset [i v] to [1]\nrepeat ((length of [level - mobs v]) / (4))\n    set [j v] to [1]\n    repeat until <<(((item ((j) + (1)) of [level - tiles v]) + (item ((j) + (2)) of [level - tiles v])) - (item ((j) + (3)) of [level - tiles v])) > (((item ((i) + (1)) of [level - mobs v]) + (item ((i) + (2)) of [level - mobs v])) - ([floor v] of (item ((i) + (3)) of [level - mobs v]) ))> or <(j) > (length of [level - tiles v])>>\n        change [j v] by (4)\n    end\n    insert (item ((i) + ()) of [level - mobs v]) at ((j) + ()) of [level - total - renderer v] \n    insert (item ((i) + (1)) of [level - mobs v]) at ((j) + (1)) of [level - total - renderer v] \n    insert (item ((i) + (2)) of [level - mobs v]) at ((j) + (2)) of [level - total - renderer v] \n    insert (item ((i) + (3)) of [level - mobs v]) at ((j) + (3)) of [level - total - renderer v] \n    change [i v] by (4)\nend\n\ndefine Change x by (xv)\nif <[collision v] contains [2]?> then\n    if <(_AreYouMob?) = [0]> then\n        change [player - x v] by ((xv) / (2.3))\n    else\n        change [mob-x v] by ((xv) / (2.3))\n    end\nelse\n    if <(_AreYouMob?) = [0]> then\n        change [player - x v] by (xv)\n    else\n        change [mob-x v] by (xv)\n    end\nend\ncollisions!\nif <[collision v] contains [1]?> then\n    if <(_AreYouMob?) = [0]> then\n        set [player - xv v] to [0]\n    else\n        set [mob-xv v] to [0]\n    end\n    if <(xv) > [0]> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - x v] to ([floor v] of (player - x) )\n        else\n            set [mob-x v] to ([floor v] of (mob-x) )\n        end\n    end\n    if <[0] > (xv)> then\n        if <(_AreYouMob?) = [0]> then\n            set [player - x v] to ([ceiling v] of (player - x) )\n        else\n            set [mob-x v] to ([ceiling v] of (mob-x) )\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <[collision v] contains [2]?> then\n        set [player - yv v] to [0]\n        wait until <not <[collision v] contains [2]?>>\n        set [player - yv v] to [1]\n    end\nend\n\ndefine go to (x) (y) (z)\nset [goto - x v] to (((((x) - (Camera X)) * (16)) + (((z) - (Camera Z)) * (16))) + ((mouse x) * (-0.1)))\nset [goto - y v] to ((((((x) - (Camera X)) * (-9)) + (((y) - (Camera Y)) * (19))) + (((z) - (Camera Z)) * (9))) + ((mouse y) * (-0.1)))\ngo to x: (goto - x) y: (goto - y)\nif <<(x position) = (goto - x)> and <(y position) = (goto - y)>> then\n\ndefine Render\nset-level\nset [ghost v] effect to (0)\nset size to (150) %\nerase all\nset [i v] to [1]\nrepeat ((length of [level - total - renderer v]) / (4))\n    go to (item ((i) + (1)) of [level - total - renderer v]) (item ((i) + (2)) of [level - total - renderer v]) (item ((i) + (3)) of [level - total - renderer v])\n    switch costume to (join [cube] (item (i) of [level - total - renderer v]))\n    tiles_SpecialEffects\n    stamp\n    change [i v] by (4)\nend\nset [shadow y v] to ([ceiling v] of (player - y) )\nShadow [ not in use ]\ngo to (player - x) (Shadow Y) (player - z)\nswitch costume to (shadow v)\nstamp\ngo to x: (0) y: (0)\nset size to (100) %\nswitch costume to (join [Eage] (level))\nstamp\ngo to x: (0) y: (163)\nswitch costume to (join [T] (level))\nstamp\n\ndefine win\nchange [level v] by (1)\ndelete all of [level - tiles v]\ndelete all of [cube-x v]\ndelete all of [cube-y v]\ndelete all of [cube-z v]\ndelete all of [cube-type v]\ndelete all of [cube-viewing v]\ndelete all of [_mobdata v]\ndelete all of [_mobx v]\ndelete all of [_moby v]\ndelete all of [_mobz v]\ndelete all of [_mobxv v]\ndelete all of [_mobyv v]\ndelete all of [_mobzv v]\ndelete all of [_mobtype v]\nif <(level) = [1]> then\n    Add Cubes type [2] from [-1] [5] [3] to [1] [5] [5]\n    Add Cubes type [3] from [-1] [-1] [3] to [1] [4] [5]\n    Add Cubes type [2] from [-1] [1] [-1] to [3] [1] [2]\n    Add Cubes type [2] from [2] [3] [3] to [3] [3] [5]\n    Add Cubes type [3] from [2] [-1] [3] to [3] [2] [5]\n    Add Cubes type [4] from [2] [-3] [3] to [3] [-2] [5]\n    Add Cubes type [3] from [-1] [-1] [-1] to [3] [0] [2]\n    Add Cubes type [4] from [-1] [-3] [-1] to [3] [-2] [2]\n    Add Cubes type [2] from [1] [2] [1] to [2] [2] [1]\n    Add Cubes type [!] from [-1] [6] [4] to [-1] [6] [4]\n    Add Cubes type [#] from [1] [3] [1] to [2] [3] [1]\nelse\n    if <(level) = [2]> then\n        spawn mob x: [0] y: [3] z: [0] type: [-pig] rangex: [-1] [6] rangez: [-1] [8]\n        spawn mob x: [1] y: [3] z: [5] type: [-pig] rangex: [-1] [6] rangez: [-1] [8]\n        Add Cubes type [2] from [-1] [1] [-1] to [6] [1] [8]\n        Add Cubes type [3] from [-1] [-1] [-1] to [6] [0] [8]\n        Add Cubes type [2] from [5] [3] [9] to [6] [3] [10]\n        Add Cubes type [2] from [3] [5] [9] to [4] [5] [10]\n        Add Cubes type [4] from [-1] [-3] [-1] to [6] [-2] [8]\n        Add Cubes type [7] from [3] [2] [4] to [3] [4] [5]\n        Add Cubes type [8] from [2] [5] [3] to [4] [6] [6]\n        Add Cubes type [9] from [2] [7] [3] to [4] [7] [6]\n        Add Cubes type [4] from [0] [9] [6] to [1] [9] [7]\n        Add Cubes type [!] from [0] [10] [7] to [0] [10] [7]\n    else\n        if <(level) = [3]> then\n            Add Cubes type [2] from [-1] [1] [-1] to [3] [1] [3]\n            Add Cubes type [3] from [-1] [-1] [-1] to [3] [0] [3]\n            Add Cubes type [4] from [-1] [-3] [-1] to [3] [-2] [3]\n            Add Cubes type [6] from [-1] [-3] [4] to [3] [-2] [6]\n            Add Cubes type [2] from [-1] [2] [7] to [3] [2] [8]\n            Add Cubes type [3] from [-1] [-1] [7] to [3] [1] [8]\n            Add Cubes type [4] from [-1] [-3] [7] to [3] [-2] [8]\n            Add Cubes type [6] from [4] [-3] [7] to [8] [-2] [8]\n            Add Cubes type [2] from [9] [4] [7] to [10] [4] [8]\n            Add Cubes type [3] from [9] [-1] [7] to [10] [3] [8]\n            Add Cubes type [4] from [9] [-3] [7] to [10] [-2] [8]\n            Add Cubes type [6] from [11] [-3] [7] to [13] [-2] [8]\n            Add Cubes type [2] from [14] [6] [7] to [16] [6] [8]\n            Add Cubes type [3] from [14] [2] [7] to [16] [5] [8]\n            Add Cubes type [4] from [14] [-3] [7] to [16] [1] [8]\n            Add Cubes type [6] from [14] [-3] [9] to [16] [-2] [14]\n            Add Cubes type [2] from [14] [6] [15] to [16] [6] [20]\n            Add Cubes type [3] from [14] [2] [15] to [16] [5] [20]\n            Add Cubes type [4] from [14] [-3] [15] to [16] [1] [20]\n            Add Cubes type [!] from [14] [8] [20] to [14] [8] [20]\n        else\n            if <(level) = [4]> then\n                Add Cubes type [4] from [-1] [-3] [-1] to [8] [-2] [8]\n                Add Cubes type [%] from [-1] [-1] [-1] to [8] [1] [8]\n                repeat (15)\n                    set [_random v] to (pick random (1) to (7))\n                    set [_random_2 v] to (pick random (1) to (7))\n                    Add Cubes type [^] from (_random) [2] (_random_2) to (_random) (pick random (2) to (4)) (_random_2)\n                end\n                Add Cubes type [!] from [8] [2] [8] to [8] [2] [8]\n            else\n                if <(level) = [5]> then\n                    set [_random_2 v] to [-1]\n                    repeat (8)\n                        set [_random v] to (pick random (1) to (3))\n                        Add Cubes type [4] from [-1] [-3] (_random_2) to [8] [-2] (_random_2)\n                        Add Cubes type [3] from [-1] [-1] (_random_2) to [8] ((_random) - (1)) (_random_2)\n                        Add Cubes type [2] from [-1] (_random) (_random_2) to [8] (_random) (_random_2)\n                        change [_random_2 v] by (1)\n                    end\n                    Add Cubes type [%] from [-1] [-3] [7] to [8] [1] [7]\n                    Add Cubes type [5] from [-1] [-3] [8] to [8] [1] [24]\n                    Add Cubes type [%] from [-1] [-3] [25] to [8] [1] [25]\n                    Add Cubes type [%] from [2] [1] [19] to [3] [2] [20]\n                    Add Cubes type [2] from [1] [4] [27] to [2] [4] [28]\n                    Add Cubes type [2] from [-2] [7] [29] to [-1] [7] [30]\n                    Add Cubes type [!] from [-1] [8] [30] to [-1] [8] [30]\n                else\n                    if <(level) = [6]> then\n                        Add Cubes type [&] from [-1] [1] [-1] to [3] [1] [3]\n                        Add Cubes type [3] from [-1] [-1] [-1] to [3] [0] [3]\n                        Add Cubes type [4] from [-1] [-3] [-1] to [3] [-2] [3]\n                        Add Cubes type [=] from [-1] [1] [4] to [3] [1] [9]\n                        Add Cubes type [&] from [-1] [1] [10] to [3] [1] [12]\n                        Add Cubes type [3] from [-1] [-1] [10] to [3] [0] [12]\n                        Add Cubes type [4] from [-1] [-3] [10] to [3] [-2] [12]\n                        Add Cubes type [=] from [-8] [1] [10] to [-2] [1] [12]\n                        Add Cubes type [&] from [-9] [1] [10] to [-9] [1] [18]\n                        Add Cubes type [3] from [-9] [-1] [10] to [-9] [0] [18]\n                        Add Cubes type [4] from [-9] [-3] [10] to [-9] [-2] [18]\n                        Add Cubes type [&] from [-12] [1] [14] to [-9] [1] [18]\n                        Add Cubes type [3] from [-12] [-1] [14] to [-9] [0] [18]\n                        Add Cubes type [4] from [-12] [-3] [14] to [-9] [-2] [18]\n                        Add Cubes type [&] from [-11] [2] [13] to [-11] [2] [14]\n                        Add Cubes type [3] from [-11] [0] [13] to [-11] [1] [14]\n                        Add Cubes type [&] from [-12] [3] [15] to [-12] [3] [17]\n                        Add Cubes type [3] from [-12] [0] [15] to [-12] [2] [17]\n                        Add Cubes type [&] from [-13] [5] [16] to [-13] [5] [20]\n                        Add Cubes type [3] from [-13] [2] [16] to [-13] [4] [20]\n                        Add Cubes type [4] from [-13] [-3] [16] to [-13] [1] [20]\n                        Add Cubes type [!] from [-13] [6] [20] to [-13] [6] [20]\n                    else\n                        if <(level) = [7]> then\n                            Add Cubes type [2] from [-1] [1] [-1] to [3] [1] [3]\n                            Add Cubes type [#] from [-1] [2] [2] to [-1] [2] [2]\n                            Add Cubes type [3] from [-1] [-1] [-1] to [3] [0] [3]\n                            Add Cubes type [4] from [-1] [-3] [-1] to [3] [-2] [3]\n                            Add Cubes type [?] from [3] [2] [3] to [3] [18] [3]\n                            Add Cubes type [4] from [1] [17] [1] to [5] [17] [1]\n                            Add Cubes type [4] from [1] [17] [5] to [5] [17] [5]\n                            Add Cubes type [4] from [1] [17] [2] to [1] [17] [4]\n                            Add Cubes type [4] from [5] [17] [2] to [5] [17] [4]\n                            Add Cubes type [4] from [7] [19] [7] to [8] [19] [8]\n                            Add Cubes type [:] from [8] [20] [8] to [8] [20] [8]\n                            Add Cubes type [4] from [9] [28] [11] to [10] [28] [12]\n                            Add Cubes type [:] from [10] [29] [12] to [10] [29] [12]\n                            Add Cubes type [4] from [13] [37] [12] to [15] [37] [14]\n                            Add Cubes type [?] from [20] [15] [13] to [20] [37] [13]\n                            Add Cubes type [2] from [21] [14] [12] to [25] [14] [14]\n                            Add Cubes type [3] from [21] [11] [12] to [25] [13] [14]\n                            Add Cubes type [4] from [21] [9] [12] to [25] [10] [14]\n                            Add Cubes type [!] from [25] [15] [14] to [25] [15] [14]\n                        else\n                            if <(level) = [8]> then\n                                Add Cubes type [2] from [-1] [1] [-1] to [6] [1] [6]\n                                Add Cubes type [3] from [-1] [-1] [-1] to [6] [0] [6]\n                                Add Cubes type [4] from [-1] [-3] [-1] to [6] [-2] [6]\n                                Add Cubes type [<] from [1] [2] [1] to [6] [2] [6]\n                                Add Cubes type [<] from [2] [3] [2] to [5] [3] [5]\n                                Add Cubes type [<] from [3] [4] [3] to [4] [4] [4]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nEnter list\n\nwhen [r v] key pressed\nReset\n\ndefine Collisions (x) (y) (z)\ndelete all of [collision v]\nset [i v] to [1]\nrepeat ((length of [level - tiles v]) / (4))\n    if <<((x) + (1)) > (item ((i) + (1)) of [level - tiles v])> and <((item ((i) + (1)) of [level - tiles v]) + (1)) > (x)>> then\n        if <<((y) + (2)) > (item ((i) + (2)) of [level - tiles v])> and <((item ((i) + (2)) of [level - tiles v]) + (1)) > (y)>> then\n            if <<((z) + (1)) > (item ((i) + (3)) of [level - tiles v])> and <((item ((i) + (3)) of [level - tiles v]) + (1)) > (z)>> then\n                collision to list\n            end\n        end\n    end\n    change [i v] by (4)\nend\nif <(_AreYouMob?) = [0]> then\n    if  then\n        Reset\n        start sound [Rip v]\n    end\n    if  then\n        if <(level) < [8]> then\n            start sound [Coin v]\n            win\n            Reset\n            wait until <not <key (v v) pressed?>>\n        end\n    end\nend\n\ndefine Physics - mobs\nif <(mob - WillingRight) = [-1]> then\n    change [mob-xv v] by (-2)\nend\nif <(mob - WillingRight) = [1]> then\n    change [mob-xv v] by (2)\nend\nif <[collision v] contains [5]?> then\n    set [mob-xv v] to ((mob-xv) * (0.98))\nelse\n    set [mob-xv v] to ((mob-xv) * (0.8))\nend\nif <[collision v] contains [5]?> then\n    set [mob-zv v] to ((mob-zv) * (0.98))\nelse\n    set [mob-zv v] to ((mob-zv) * (0.8))\nend\nChange x by ((round (mob-xv)) * (0.03))\nif <(mob - WillingUp) = [-1]> then\n    change [mob-zv v] by (-2)\nend\nif <(mob - WillingUp) = [1]> then\n    change [mob-zv v] by (2)\nend\nChange z by ((round (mob-zv)) * (0.03))\nif <[collision v] contains [2]?> then\n    change [mob-yv v] by (-0.3)\nelse\n    change [mob-yv v] by (-1)\nend\nif <not <[collision v] contains [7]?>> then\n    if <(mob - WillingJump) = [1]> then\n        if <[collision v] contains [2]?> then\n            set [mob-yv v] to [2]\n        else\n            if <(Mob_CanJump) = [1]> then\n                set [mob-yv v] to [12]\n            end\n        end\n    end\nend\nif <[collision v] contains [6]?> then\n    set [mob-yv v] to [20]\nend\nif <[collision v] contains [7]?> then\n    if <(mob - WillingJump) = [1]> then\n        set [mob-yv v] to [5]\n    else\n        set [mob-yv v] to [-2]\n    end\nend\nChange y by ((round (mob-yv)) * (0.05))\n\ndefine Physics\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <[-50] > (mouse x)>>>> then\n    change [player - xv v] by (-2)\n    if <mouse down?> then\n        change [player - zv v] by (-2)\n    end\nend\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > [50]>>>> then\n    change [player - xv v] by (2)\n    if <mouse down?> then\n        change [player - zv v] by (2)\n    end\nend\nif <[collision v] contains [5]?> then\n    set [player - xv v] to ((player - xv) * (0.98))\nelse\n    set [player - xv v] to ((player - xv) * (0.8))\nend\nif <[collision v] contains [5]?> then\n    set [player - zv v] to ((player - zv) * (0.98))\nelse\n    set [player - zv v] to ((player - zv) * (0.8))\nend\nChange x by ((round (player - xv)) * (0.03))\nif <<key (down arrow v) pressed?> or <<key (s v) pressed?> or <<mouse down?> and <[-50] > (mouse y)>>>> then\n    change [player - zv v] by (-2)\n    if <mouse down?> then\n        change [player - xv v] by (2)\n    end\nend\nif <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > [50]>>>> then\n    change [player - zv v] by (2)\n    if <mouse down?> then\n        change [player - xv v] by (-2)\n    end\nend\nChange z by ((round (player - zv)) * (0.03))\nChange y by ((round (player - yv)) * (0.05))\nif <[collision v] contains [2]?> then\n    change [player - yv v] by (-0.3)\nelse\n    change [player - yv v] by (-1)\nend\nif <not <[collision v] contains [7]?>> then\n    if <<key (space v) pressed?> or <mouse down?>> then\n        if <[collision v] contains [2]?> then\n            set [player - yv v] to [2]\n        else\n            if <(CanJump?) = [1]> then\n                set [player - yv v] to [12]\n            end\n        end\n    end\nend\nif <[collision v] contains [6]?> then\n    start sound [Bubbles2 v]\n    set [player - yv v] to [20]\nend\nif <[collision v] contains [7]?> then\n    if <<key (space v) pressed?> or <mouse down?>> then\n        set [player - yv v] to [5]\n    else\n        set [player - yv v] to [-2]\n    end\nend\nchange [camera x v] by (((player - x) - (Camera X)) / (10))\nchange [camera y v] by (((player - y) - (Camera Y)) / (10))\nchange [camera z v] by (((player - z) - (Camera Z)) / (10))\nif <(Camera Y) < [0]> then\n    set [camera y v] to [0]\nend\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 (k) to [cube-x v]\n            add (i) to [cube-y v]\n            add (j) to [cube-z v]\n            add (((k) + (i)) - (j)) to [cube-viewing v]\n            add (type) to [cube-type v]\n            change [k v] by (1)\n        end\n        change [j v] by (-1)\n    end\n    change [i v] by (1)\nend\n\nadd [-pig] to [level - mobs v]\nadd (mob-x) to [level - mobs v]\nadd (mob-y) to [level - mobs v]\nadd (mob-z) to [level - mobs v]\n\nset [shadow y v] to [0]\n\n