用户:
开心地小电鼠查看:1 回复:4 评论:1 创建时间:2020-11-15T08:52:58
大家好,我叫开心的小电鼠!
今天,我分享一下速建代码!

1.实心矩形
/* 在指定位置快速建造一个实心的矩形 */
function cubefill(vox, sx, sy, sz, xsize, ysize, zsize){
var xend = sx+xsize
var yend = sy+ysize
var zend = sz+zsize
for(var x=sx;x<xend;x++){
for(var y=sy;y<yend;y++){
for(var z=sz;z<zend;z++){
voxels.setVoxel(x,y,z,vox)
}}}
}
cubefill('stone',喵,9,喵,10,5,10) // 调用方法。在{x:喵, y:9, z:喵} 位置,建造一个长10格,宽5格,高10格的实心矩形
2.空心矩形
/* 在指定位置快速建造一个空心的矩形 */
function cube(vox, sx, sy, sz, xsize, ysize, zsize){
var xend = sx+xsize
var yend = sy+ysize
var zend = sz+zsize
for(var x=sx;x<xend;x++){
for(var y=sy;y<yend;y++){
for(var z=sz;z<zend;z++){
if(x===sx || z===sx || x===xend-1 || z===zend-1 ){ //如果方块的位置在边缘
voxels.setVoxel(x,y,z,vox)
}
}}}
}
cube('stone',喵,9,喵,10,5,10) // 调用方法。在{x:喵, y:9, z:喵} 位置,建造一个长10格,宽5格,高10格的空心矩形
3.实心球体
/* 在指定位置快速建造一个实心的球体 */
function sphere(vox, cx, cy, cz, radius){
let xend = cx+radius
let yend = cy+radius
let zend = cz+radius
for(let x=cx-radius;x<=xend;x++){
for(let y=cy-radius;y<=yend;y++){
for(let z=cz-radius;z<=zend;z++){
let dx = x-cx;
let dy = y-cy;
let dz = z-cz;
if(Math.round(Math.sqrt(dx*dx+dy*dy+dz*dz)) <= radius){
voxels.setVoxel(x,y,z,vox)
}
}}}
}
sphere('stone',63,24,63,12) // 调用方法。在{x:63, y:24, z:63} 位置,建造一个半径为12格的实心球体
4.圆柱体
/* 在指定位置快速建造一个圆柱体 */
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)
}
}
}}
}
cylinder('stone',63,12,63,10,4) // 调用方法。在{x:63, y:12, z:63} 位置,建造一个半径10格,高度4格的圆柱体
谢谢大家观看
欢迎留言