猫史档案馆


PVP大乱斗地图不会建筑怎么办?一招教你解决问题!代码师必看!建筑师表示:我失业了。

用户:BSS梅者如西BSS梅者如西查看:14 回复:3 评论:14 创建时间:2021-06-29T16:58:56


大家好,我是BSS梅者如西,最近,有网友问:我会代码,但是建筑不太好怎么办呢?今天我将帮你解答。

首先,我们拿出吉吉喵的山丘速建代码,删去注释放到控制台中使用(如果每次地图开始再生成太卡)

function cylinder(cx, cy, cz, vox, radius, height) {
    var xend = cx + radius;
    var yend = cy + height;
    var zend = cz + radius;
    for (var x = cx - radius; x <= xend; x++) {
        for (var z = cz - radius; z <= zend; z++) {
            var dx = x - cx;
            var dz = z - cz;
            if (Math.round(Math.sqrt(dx * dx + dz * dz)) <= radius) {
                for (var y = cy; y < yend; y++) {
                    voxels.setVoxel(x, y, z, vox);
                }
            }
        }
    }
}

for (var i = 0; i < 300; i++) { /* 300个随机圆柱体构成场景 */
    let x = Math.random() * 125; /* x坐标 */
    let z = Math.random() * 125; /* z坐标 */
    let h = Math.random() * 4; /* 高 0~3.9999 */
    let r = 2 + Math.random() * 5; /* 半径 2~6.9999 */
    cylinder(x, 9, z, 'dirt', r, h);
}

for (var y = 9; y < 13; y++) { /* 扫描9~12层的格子 */
    for (var x = 0; x < 127; x++) {
        for (var z = 0; z < 127; z++) {
            /* 如果当前格子不为空而它上面那格是空的, 则表示它是复杂地形的表面 */
            if (voxels.getVoxel(x, y, z) != 0 && voxels.getVoxel(x, y + 1, z) == 0) {
                voxels.setVoxel(x, y, z, 'grass'); /* 土块替换成喵地 */
            }
        }
    }
}

接着我们将写好的PVP大乱斗的代码,放入代码区中。

最后,我们想一个符合本地图特色的词语,起名为《XX试炼场》,就大功告成了,有喜欢的伙伴就用起来吧~


回复

上一页1 页 / 共 1下一页
BSS梅者如西BSS梅者如西

sofa

点赞0


评论


BSS梅者如西BSS梅者如西

dd

点赞0


评论


ArchitectsArchitects

这样做出来的地图是没有灵魂的()

点赞1


评论