用户:查看:0 回复:3 评论:0 创建时间:2021-08-06T19:13:56
最近玩了下生存日记,我觉得水池的地形应该有层次a!
然后就做了这个水池改良,并且附加了地形的高低层次👇
function cylinder(vox, cx, y, cz, radius){//植树代码版权声明:YDS尹子
let xend = cx+radius
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){
voxels.setVoxel(x,y,z,vox)
}
}}
}
function tree(x, y, z) {//改良了一下植树函数
if (voxels.getVoxel(x, y, z) != voxels.id("water")) {
var rand = 1;
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");
for (let i = y + rand; i < y + 6 + rand; i++) {
voxels.setVoxel(x, i, z, "acacia");
}
}
};
async function spawnTree() {
for (let i = 0; i < 128; i++) {
for (let j = 0; j < 128; j++) {
for (let k = 0; k < 128; k++) {
if (voxels.getVoxel(i, k, j) == voxels.id("grass")) {
if (Math.random() * 150 <= 1) {
tree(i, k, j);
}
}
}
}
await sleep(10);
}
}
for(x=0;x<128;x++){
for(y=0;y<85;y++){
for(z=0;z<128;z++){
voxels.setVoxel(x,y,z,125)
}
}
}
for(x=0;x<128;x++){
for(z=0;z<128;z++){
if(Math.random()<0.0006){
cylinder(0,x,84,z,35)
cylinder(0,x,83,z,32)
cylinder(0,x,82,z,28)
cylinder(0,x,81,z,23)
cylinder(0,x,80,z,20)
cylinder(3喵,x,79,z,15)
cylinder(3喵,x,78,z,12)
cylinder(3喵,x,77,z,8)
cylinder(3喵,x,76,z,5)
}
}
}
for(x=0;x<128;x++){
for(y=0;y<128;y++){
for(z=0;z<128;z++){
if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y+1,z)==3喵){
voxels.setVoxel(x,y,z,135)
}else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y,z+1)==3喵){
voxels.setVoxel(x,y,z,135)
}else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y,z-1)==3喵){
voxels.setVoxel(x,y,z,135)
}else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x+1,y,z)==3喵){
voxels.setVoxel(x,y,z,135)
}else if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x-1,y,z)==3喵){
voxels.setVoxel(x,y,z,135)
}
}
}
}
for(x=0;x<128;x++){
for(y=0;y<128;y++){
for(z=0;z<128;z++){
if(voxels.getVoxel(x,y,z)==125&&voxels.getVoxel(x,y+1,z)==0){
voxels.setVoxel(x,y,z,127)
}
}
}
}
spawnTree()

地形基座高了点,大家可以改一下~