猫史档案馆


生存日记水池生成改良

用户:查看:0 回复:3 评论:0 创建时间:2021-08-06T19:13:56


最近玩了下生存日记,我觉得水池的地形应该有层次a!

然后就做了这个水池改良,并且附加了地形的高低层次👇

function cylinder(vox, cx, y, cz, radius){//植树代码版权声明:YDS尹子
    let xend = cx+radius
    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){
            voxels.setVoxel(x,y,z,vox)
        }
    }}
}
function tree(x, y, z) {//改良了一下植树函数
    if (voxels.getVoxel(x, y, z) != voxels.id("water")) {
        var rand = 1;
        for (let i = 3 + rand; i < 5 + rand; i++) {
            for (let j = -2; j < 3; j++) {
                for (let k = -2; k < 3; k++) {
                    voxels.setVoxel(x + j, y + i, z + k, "green_leaf");
                }
            }
        }
        for (let j = -1; j < 2; j++) {
            for (let k = -1; k < 2; k++) {
                voxels.setVoxel(x + j, y + 5 + rand, z + k, "green_leaf");
            }
        }
        voxels.setVoxel(x - 1, y + 6 + rand, z, "green_leaf");
        voxels.setVoxel(x, y + 6 + rand, z, "green_leaf");
        voxels.setVoxel(x + 1, y + 6 + rand, z, "green_leaf");
        voxels.setVoxel(x, y + 6 + rand, z - 1, "green_leaf");
        voxels.setVoxel(x, y + 6 + rand, z + 1, "green_leaf");
        for (let i = y + rand; i < y + 6 + rand; i++) {
            voxels.setVoxel(x, i, z, "acacia");
        }
    }
};
async function spawnTree() {
    for (let i = 0; i < 128; i++) {
        for (let j = 0; j < 128; j++) {
            for (let k = 0; k < 128; k++) {
                if (voxels.getVoxel(i, k, j) == voxels.id("grass")) {
                    if (Math.random() * 150 <= 1) {
                        tree(i, k, j);
                    }
                }
            }
        }
        await sleep(10);
    }
}
for(x=0;x<128;x++){
    for(y=0;y<85;y++){
        for(z=0;z<128;z++){
            voxels.setVoxel(x,y,z,125)
        }
    }
}
for(x=0;x<128;x++){
    for(z=0;z<128;z++){
        if(Math.random()<0.0006){
            cylinder(0,x,84,z,35)
            cylinder(0,x,83,z,32)
            cylinder(0,x,82,z,28)
            cylinder(0,x,81,z,23)
            cylinder(0,x,80,z,20)
            cylinder(3喵,x,79,z,15)
            cylinder(3喵,x,78,z,12)
            cylinder(3喵,x,77,z,8)
            cylinder(3喵,x,76,z,5)
        }
    }
}
for(x=0;x<128;x++){
    for(y=0;y<128;y++){
        for(z=0;z<128;z++){
            if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y+1,z)==3喵){
                voxels.setVoxel(x,y,z,135)
            }else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y,z+1)==3喵){
                voxels.setVoxel(x,y,z,135)
            }else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y,z-1)==3喵){
                voxels.setVoxel(x,y,z,135)
            }else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x+1,y,z)==3喵){
                voxels.setVoxel(x,y,z,135)
            }else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x-1,y,z)==3喵){
                voxels.setVoxel(x,y,z,135)
            }
        }
    }
}
for(x=0;x<128;x++){
    for(y=0;y<128;y++){
        for(z=0;z<128;z++){
            if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y+1,z)==0){
                voxels.setVoxel(x,y,z,127)
            }
        }
    }
}
spawnTree()

center_image

地形基座高了点,大家可以改一下~


回复

上一页1 页 / 共 1下一页
成熟的强袭编程猫548成熟的强袭编程猫548

沙发

点赞0


评论


蔡宁进(大家再见)蔡宁进(大家再见)

高档沙发,附加功能~

点赞0


评论


稚兔丸稚兔丸

稚兔织梦:喔知道了

脑子:这啥

点赞0


评论