用户:
SHEL深空无尽查看:2 回复:7 评论:2 创建时间:2021-09-09T19:56:59

第一次搞自动生成,结果很理想
tps:地图要选128X128X128的,一定一定一定一定一定要
废话不多说,上代码
首先,月球分为月壳-上月幔-中月幔-月震带-下月幔-月核
月壳代码:
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',喵,喵,喵,喵)
注意,生成完要等一段时间,否则会卡
上月幔代码:
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('lava01',喵,喵,喵,60)
中月幔代码:
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('lava02',喵,喵,喵,53)
月震带代码:
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('yellow_light',喵,喵,喵,35)
下月幔代码:
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('warm_yellow_light',喵,喵,喵,25)
月核代码:
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('dark_stone',喵,喵,喵,15)
好了就这些
注意一定要按顺序生成,否则会乱
???你怎么还不走
看够了吗???
哦,你问我开头那个图片怎么搞的啊
那个是月球解剖
代码如下:
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('air',喵,喵,0,喵,200,200)
好了真没东西了
啊啊啊你怎么还在看
真的没有了