猫史档案馆


【box3】地形研究:正弦山地!

用户:YDS尹子YDS尹子查看:16 回复:14 评论:16 创建时间:2020-08-08T08:05:37


center_image

//喵均为 n c
function vil(x,y,z,num){
	if(num==1){
		for(let i=-4;i<=4;i++){
			for(let j=-4;j<=4;j++){
				for(let k=0;k<=5;k++){
					voxels.setVoxel(x+i,y+k,z+j,0);
				}
                if(voxels.getVoxel(x+i,y-1,z+j)!=0){
                    voxels.setVoxel(x+i,y-1,z+j,"grass")
                }
                
			}
		}
		for(let i=0;i<=3;i++){
			voxels.setVoxel(x+2,y+i,z+2,"stone");
			voxels.setVoxel(x+2,y+i,z-2,"stone");
			voxels.setVoxel(x-2,y+i,z+2,"stone");
			voxels.setVoxel(x-2,y+i,z-2,"stone");
		}
		for(let i=0;i<=3;i++){
			for(let k=-1;k<=1;k++){
				voxels.setVoxel(x+2,y+i,z+k,"plank_02");
				voxels.setVoxel(x-2,y+i,z+k,"plank_02");
				voxels.setVoxel(x+k,y+i,z+2,"plank_02");
				voxels.setVoxel(x+k,y+i,z-2,"plank_02");
			}
		}
		voxels.setVoxel(x+2,y+1,z,"window");
		voxels.setVoxel(x-2,y+1,z,"window");
		voxels.setVoxel(x,y+1,z+2,"window");
		voxels.setVoxel(x,y+1,z-2,"window");
		for(let i=-2;i<=2;i++){
			for(let j=-2;j<=2;j++){
				voxels.setVoxel(x+i,y-1,z+j,"stone");
				voxels.setVoxel(x+i,y+3,z+j,"acacia");
			}
		}
        voxels.setVoxel(x+2,y,z,0);
        voxels.setVoxel(x+2,y+1,z,0);
	}
}


var seaLevel=14;
var xzZoom=4;
var yZoom=4;
var exZ1=1;
var exZ2=1;
var exZ3=10;
var base=4;
function tree(x,y,z){
    if(voxels.getVoxel(x,y,z)!=voxels.id("water")){
       var rand=1;
    for(let i=y+rand;i<y+4+rand;i++){
            voxels.setVoxel(x,i,z,"acacia");
        }
    for(let i=3+rand;i<5+rand;i++){
        for(let j=-2;j<3;j++){
            for(let k=-2;k<3;k++){
                voxels.setVoxel(x+j,y+i,z+k,"green_leaf");
            }
        }
    }
    for(let j=-1;j<2;j++){
        for(let k=-1;k<2;k++){
            voxels.setVoxel(x+j,y+5+rand,z+k,"green_leaf");
        }
    }
    voxels.setVoxel(x-1,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x+1,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z-1,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z+1,"green_leaf");
    }
    
}
(async function(){
for(let i=0;i<127;i++){
    var ii=i-63;
    var xh=Math.sin(ii/xzZoom)*yZoom+i/5;
    for(let j=0;j<127;j++){
        var jj=j-63;
        var zh=Math.cos(jj/xzZoom)*yZoom+j/5;
        if(xh+zh+base<seaLevel){
            voxels.setVoxel(i,xh+zh+base,j,"dirt");
            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }else if(Math.round(xh+zh+base)==seaLevel){
            voxels.setVoxel(i,xh+zh+base,j,"sand");
            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }else{
            voxels.setVoxel(i,xh+zh+base,j,"grass");

            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }
        
        
    }
    await sleep(20);
}
for(let i=0;i<127;i++){
    for(let j=0;j<127;j++){
        for(let k=0;k<=seaLevel;k++){
            if(voxels.getVoxel(i,k,j)==0){
                voxels.setVoxel(i,k,j,"water");
            }
        }
    }
}


await sleep(1000);
world.say("即将生成建筑和树木")
for(let i=0;i<127;i++){
    for(let j=0;j<127;j++){
        for(let k=0;k<100;k++){
            if(voxels.getVoxel(i,k,j)==voxels.id("grass")){
                if(Math.random()*100<=1){
                    tree(i,k,j);
                }else if(Math.random()*1000<=1){
            	vil(i,k+1,j,1);       
                }
            }
        }
    }
    await sleep(10);
}

})()



world.onPlayerJoin(({entity})=>{
    entity.player.scale=0.8;
    entity.player.canFly=true;
})


回复

上一页1 页 / 共 1下一页
芜湖咸鱼芜湖咸鱼

噪声渲染器了解一下?

点赞0


评论


您的氪金好友您的氪金好友

模板作品好香啊

点赞0


评论


Architect_海绵Architect_海绵

这个是丘陵吧(doge)

点赞0


评论


YDS尹子YDS尹子

修复版,可以在控制台运行

function vil(x,y,z,num){
	if(num==1){
		for(let i=-4;i<=4;i++){
			for(let j=-4;j<=4;j++){
				for(let k=0;k<=5;k++){
					voxels.setVoxel(x+i,y+k,z+j,0);
				}
                if(voxels.getVoxel(x+i,y-1,z+j)!=0){
                    voxels.setVoxel(x+i,y-1,z+j,"grass")
                }
                
			}
		}
		for(let i=0;i<=3;i++){
			voxels.setVoxel(x+2,y+i,z+2,"stone");
			voxels.setVoxel(x+2,y+i,z-2,"stone");
			voxels.setVoxel(x-2,y+i,z+2,"stone");
			voxels.setVoxel(x-2,y+i,z-2,"stone");
		}
		for(let i=0;i<=3;i++){
			for(let k=-1;k<=1;k++){
				voxels.setVoxel(x+2,y+i,z+k,"plank_02");
				voxels.setVoxel(x-2,y+i,z+k,"plank_02");
				voxels.setVoxel(x+k,y+i,z+2,"plank_02");
				voxels.setVoxel(x+k,y+i,z-2,"plank_02");
			}
		}
		voxels.setVoxel(x+2,y+1,z,"window");
		voxels.setVoxel(x-2,y+1,z,"window");
		voxels.setVoxel(x,y+1,z+2,"window");
		voxels.setVoxel(x,y+1,z-2,"window");
		for(let i=-2;i<=2;i++){
			for(let j=-2;j<=2;j++){
				voxels.setVoxel(x+i,y-1,z+j,"stone");
				voxels.setVoxel(x+i,y+3,z+j,"acacia");
			}
		}
        voxels.setVoxel(x+2,y,z,0);
        voxels.setVoxel(x+2,y+1,z,0);
	}
};


var seaLevel=14;
var xzZoom=4;
var yZoom=4;
var exZ1=1;
var exZ2=1;
var exZ3=10;
var base=4;
function tree(x,y,z){
    if(voxels.getVoxel(x,y,z)!=voxels.id("water")){
       var rand=1;
    for(let i=y+rand;i<y+4+rand;i++){
            voxels.setVoxel(x,i,z,"acacia");
        }
    for(let i=3+rand;i<5+rand;i++){
        for(let j=-2;j<3;j++){
            for(let k=-2;k<3;k++){
                voxels.setVoxel(x+j,y+i,z+k,"green_leaf");
            }
        }
    }
    for(let j=-1;j<2;j++){
        for(let k=-1;k<2;k++){
            voxels.setVoxel(x+j,y+5+rand,z+k,"green_leaf");
        }
    }
    voxels.setVoxel(x-1,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x+1,y+6+rand,z,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z-1,"green_leaf");
    voxels.setVoxel(x,y+6+rand,z+1,"green_leaf");
    }
    
};
(async function(){
for(let i=0;i<127;i++){
    var ii=i-63;
    var xh=Math.sin(ii/xzZoom)*yZoom+i/5;
    for(let j=0;j<127;j++){
        var jj=j-63;
        var zh=Math.cos(jj/xzZoom)*yZoom+j/5;
        if(xh+zh+base<seaLevel){
            voxels.setVoxel(i,xh+zh+base,j,"dirt");
            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }else if(Math.round(xh+zh+base)==seaLevel){
            voxels.setVoxel(i,xh+zh+base,j,"sand");
            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }else{
            voxels.setVoxel(i,xh+zh+base,j,"grass");

            for(let k=0;k<xh+zh+base-1;k++){
                voxels.setVoxel(i,k,j,"dirt");
            }
        }
        
        
    }
    await sleep(20);
}
for(let i=0;i<127;i++){
    for(let j=0;j<127;j++){
        for(let k=0;k<=seaLevel;k++){
            if(voxels.getVoxel(i,k,j)==0){
                voxels.setVoxel(i,k,j,"water");
            }
        }
    }
}


await sleep(1000);
world.say("即将生成建筑和树木");
for(let i=0;i<127;i++){
    for(let j=0;j<127;j++){
        for(let k=0;k<100;k++){
            if(voxels.getVoxel(i,k,j)==voxels.id("grass")){
                if(Math.random()*100<=1){
                    tree(i,k,j);
                }else if(Math.random()*1000<=1){
            	vil(i,k+1,j,1);       
                }
            }
        }
    }
    await sleep(10);
}

})();



world.onPlayerJoin(({entity})=>{
    entity.player.scale=0.8;
    entity.player.canFly=true;
})

点赞0


评论


ZNS_RemytowerJimmyZNS_RemytowerJimmy

emmm我没有实验图……

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

可以把函数值乘上随机数字造成不同的地势

点赞1


评论


一个STUB用户_6923702一个STUB用户_6923702

要不来点噪音玩玩?

点赞0


评论


Mikasa_Mikasa_

(⊙o⊙)…

点赞0


评论


IDF哲宇MIKEIDF哲宇MIKE

good

点赞0


评论


sqrt404sqrt404

emotion_编程猫_厉害了

点赞0


评论


Lonely_wandererLonely_wanderer

赶紧收藏!

点赞0


评论


凌_墨水凌_墨水

尹子牛!!顶顶!!

点赞0


评论


IaeaIaea

n'd

点赞0


评论


JYF_斗罗JYF_斗罗

牛!!!

点赞0


评论