猫史档案馆


[Box3]地形代码

用户:好奇的土岩龙HHaS好奇的土岩龙HHaS查看:1 回复:1 评论:1 创建时间:2024-01-23T16:54:46


center_image

async function sphere(a, b, x, y, z, vox) {
    for (var n = 0; n <= 360; n++) {
        voxels.setVoxel(x + a * Math.cos(n / 180 * Math.PI), y, z + b * Math.sin(n / 180 * Math.PI), vox)
    }
}
async function draw_circle(x, y, z, n) {
    for (var i = 5; i > 0; i -= 0.1) {
        sphere(i * n, i * n / 1.25, x, y, z, 'dirt')
    }
}
async function draw_ball(h, x, z, m, n) { //m是斜率,n是重心
    for (var y = 9; y < h; y++) {
        draw_circle(x + n * y, y, z, m * (h - y))
    }
}
(async function () {
    for (var i = 0; i < 200; i++) {
        await draw_ball(30 + Math.random() * 10, Math.random() * 256, Math.random() * 256, Math.random() * 0.1 + 0.2, 0.2 - Math.random() * 0.4)
        await sleep(5)
    }
    for (var x = 0; x < 256; x++) {
        for (var z = 0; z < 256; z++) {
            for (var y = 9; y < 40; y++) {
                if (voxels.getVoxel(x, y, z) == voxels.id('dirt') && voxels.getVoxel(x, y + 1, z) == 0) {
                    voxels.setVoxel(x, y, z, 'grass')
                }
            }
        }
        await sleep(5)
    }
    for (var y = 8; y < 25; y++) {
        for (var x = 0; x < 256; x++) {
            for (var z = 0; z < 256; z++) {
                if (voxels.getVoxel(x, y, z) == 0) {
                    voxels.setVoxel(x, y, z, 'water')
                    if (voxels.getVoxel(x, y - 1, z) == voxels.id('grass')) {
                        voxels.setVoxel(x, y - 1, z, 'dirt')
                    }
                }
            }
        }
        await sleep(5)
    }
    for (var y = 8; y < 25; y++) {
        for (var x = 0; x < 256; x++) {
            for (var z = 0; z < 256; z++) {
                if (voxels.getVoxel(x, y, z) == voxels.id('grass')) {
                    if (voxels.getVoxel(x - 1, y, z) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x + 1, y, z) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x, y, z - 1) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x - 1, y, z + 1) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x - 1, y, z - 1) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x + 1, y, z + 1) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                    if (voxels.getVoxel(x + 1, y, z - 1) == voxels.id('water')) {
                        voxels.setVoxel(x, y, z, 'sand')
                    }
                }
            }
        }
        await sleep(5)
    }
})()


回复

上一页1 页 / 共 1下一页
DRboxesDRboxes

现代武器试验场的地形?

点赞0


评论