猫史档案馆


【box3】"超大"操场速建

用户:翎with珝翎with珝查看:3 回复:11 评论:3 创建时间:2023-05-02T15:53:37


const start = [84, 8, 52];
let n = 48;
for (let i = 0; i <= 4; i++) {
    cylinder('white', start[0], start[1] + 1, start[2] + 35, n, 1);
    n = n - 1;
    cylinder('red', start[0], start[1] + 1, start[2] + 35, n, 1);
    n = n - 2;
};
for (var i = start[0]; i < start[0] + 160; i++) {
    voxels.setVoxel(i, start[1] + 1, start[2] + 71, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 72, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 73, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 74, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 75, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 76, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 77, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 78, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 79, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 80, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 81, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 82, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 83, 'white');
};
n = 48;
for (let i = 0; i <= 4; i++) {
    cylinder('white', start[0] + 105, start[1] + 1, start[2] + 35, n, 1);
    n = n - 1;
    cylinder('red', start[0] + 105, start[1] + 1, start[2] + 35, n, 1);
    n = n - 2;
};
cylinder('grass', start[0], start[1] + 1, start[2] + 35, 35, 1);
cylinder('grass', start[0] + 105, start[1] + 1, start[2] + 35, 35, 1);
for (var i = start[0]; i < start[0] + 105; i++) {
    voxels.setVoxel(i, start[1] + 1, start[2] - 13, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] - 12, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 11, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 10, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] - 9, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 8, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 7, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] - 6, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 5, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 4, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] - 3, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 2, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] - 1, 'white');
};
for (var i = start[0]; i < start[0] + 105; i++) {
    voxels.setVoxel(i, start[1] + 1, start[2] + 71, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 72, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 73, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 74, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 75, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 76, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 77, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 78, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 79, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 80, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 81, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 82, 'red');
    voxels.setVoxel(i, start[1] + 1, start[2] + 83, 'white');
};
for (var i = start[0]; i < start[0] + 160; i++) {
    voxels.setVoxel(i, start[1] + 1, start[2] + 71, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 74, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 77, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 80, 'white');
    voxels.setVoxel(i, start[1] + 1, start[2] + 83, 'white');
};
for (var xx = 0; xx < 21; xx++) {
    for (var z = start[2]; z <= start[2] + 70; z++) {
        for (var i = 0; i < 5; i++) {
            if (xx % 2) {
                voxels.setVoxel(xx * 5 + i + start[0], start[1] + 1, z, 'grass');
            } else {
                voxels.setVoxel(xx * 5 + i + start[0], start[1] + 1, z, 'dark_grass');
            };
        };
    };
};
for (var i = start[2]; i < start[2] + 71; i++) {
    voxels.setVoxel(start[0], start[1] + 1, i, 'white');
};
for (var i = start[2]; i < start[2] + 71; i++) {
    voxels.setVoxel(start[0] + 105, start[1] + 1, i, 'white');
};
for (var i = start[2] + 71; i < start[2] + 84; i++) {
    voxels.setVoxel(start[0] + 160, start[1] + 1, i, 'white');
};
function cylinder(vox, cx, cy, cz, radius, height) {
    let xend = cx + radius;
    let yend = cy + height;
    let zend = cz + radius;
    for (let x = cx - radius; x <= xend; x++) {
        for (let z = cz - radius; z <= zend; z++) {
            let dx = x - cx;
            let dz = z - cz;
            if (Math.round(Math.sqrt(dx * dx + dz * dz)) <= radius) {
                for (let y = cy; y < yend; y++) {
                    voxels.setVoxel(x, y, z, vox);
                };
            };
        };
    };
};

ps:

代码可以简化,但是帖主懒得简化,所以没有简化。

这个操场速建完之后比较大(

建议使用256地图,因为128装不下

(操场大小96*1*208)

 

注:截图右侧的字不用管(帖主听网抑云?


回复

上一页1 页 / 共 1下一页
清播广播电视集团清播广播电视集团

沙发

点赞0


评论


ZNS_哪吒ZNS_哪吒

要啥来啥)()

点赞0


评论


翎with珝翎with珝

box3.codemao.cn/e/0喵8d24240922f6cee2c

实际速建情况(

点赞0


评论


yee剑走天下yee剑走天下

问一下start是中心位置吗

点赞0


评论


翎with珝翎with珝

左上角为0,0,0

start是图中A点位置

box3.codemao.cn/e/0喵8d24240922f6cee2c

实际速建情况(

 

点赞0


评论


yee剑走天下yee剑走天下

我们之间的回忆~emotion_doge

点赞0


评论


小屑鹿小屑鹿

用几百个模型拼不就可以了emotion_doge

点赞1


评论


翎with珝翎with珝

没人注意我听得什么歌(惊

点赞0


评论


NeutronNeutron

666,只可惜我的地图是128,所以喵场直接弄成模型了()

点赞0


评论


屑怪盗屑怪盗

ddd

点赞0


评论


1086爱编程1086爱编程

这个操场能不能自定义大小啊)

点赞0


评论