猫史档案馆


【快速生成】生成月球教程

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


center_image

 

第一次搞自动生成,结果很理想

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)

好了真没东西了

 

 

 

 

 

 

 

 

 

啊啊啊你怎么还在看

 

 

 

 

 

 

 

 

 

真的没有了


回复

上一页1 页 / 共 1下一页
无尽深空无尽深空

月球割面图哈哈。

点赞1


评论


冰糖葫芦_冰糖葫芦_

但是人会往下掉。

点赞1


评论


IaeaIaea

yyds

点赞1


评论


async_functionasync_function

awa*这月球*

点赞1


评论


Architect_皮卡awaArchitect_皮卡awa

emotion_doge

点赞0


评论


浮生awa浮生awa

这烤串丸子怎么这么像月球啊?【doge】

点赞0


评论


MrAssMrAss

针不戳,不过不应该割八分之一吗?

点赞0


评论