用户:
神岛吉吉喵查看:23 回复:37 评论:23 创建时间:2021-02-06T12:19:58
-生成山丘的代码-
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'); /* 土块替换成喵地 */
}
}
}
}
快在你的地图里试试吧~

开发API文档:https://docs.box3.codemao.cn/
加入代码岛3.0官方内测Q喵
下面的二维码会扫出来什么呢?( =•ω•= )m

YDS尹子------打个广告------
想要自己画地形的岛民们看这里→http://www.yxtnt.cn/boxTE/terrainEditor.html
(可能不是很均匀)
点击新建项目,输入三个参数,就可以绘制啦!
具体说明:
w/s:配合鼠标位置进行绘制
f/g:减小增加画笔大小
点赞1
评论