用户:
GZ006查看:4 回复:9 评论:4 创建时间:2023-01-28T18:05:35
额,大佬不喜勿喷,下面的代码基本上代码小白都可以写出来)))
本速建代码师基于随机数进行建造的)))
/*
使用说明:
通过zoom修改速建范围(其他的看看注释)
在将本代码放入控制台前,
可以先放至代码区运行试试效果,
觉得ok后再放到控制台运行!
*/
function randomNum(minNum, maxNum) {
switch (arguments.length) {
case 1:
return parseInt(Math.random() * minNum + 1, 10);
break;
case 2:
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
break;
default:
return 0;
break;
}
};
var y=2;
var lasty=2;
var zoom=256;/*必须小于1024!!!否则后果自负 */
async function o(){
for(let x=0;x<=zoom;x++){
lasty=3;/*这个也可以更改)))影响似乎不大)))*/
for(let z=0;z<=zoom;z++){
for(let y=0;y<=9;y++){
voxels.setVoxelId(x,y,z,0)
}
y=lasty;
if(y<4){
y=5
}
if(x!==0){
for(let y1=0;y1<=32;y1++){/*根据地图y坐标改! */
if(voxels.getVoxelId(x-1,y1,z)==127||voxels.getVoxelId(x-1,y1,z)==135){
if(z==0){
y=y1;
if(y<6){/*这个if分支里面的数字都可以根据个人喜好更改 */
y+=randomNum(-1,3)
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,2)
}
}else{
for(let y2=0;y2<=32;y2++){/*同上) */
if(voxels.getVoxelId(x,y2,z-1)==127||voxels.getVoxelId(x,y2,z-1)==135){
y=(y1+y2)/2-1;
if(y<8){/*这个if分支里面的数字都可以根据个人喜好更改 */
y+=randomNum(0,3);
if(y<3){
y+=randomNum(0,3)
}
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,3)
}
if(y1==y2&&y!==y1){
y=y1
}
}
}
}
}
}
}else{
if(y<6){/*6是默认的海平面高度,可以自行修改 */
y+=randomNum(-1,3)
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,3)
}
}
if(y<2){
y=2
}else if(y>28){/*这里的数字关系到生成地形的最高高度! */
y=28
}
if(y>6){/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y,z,127);
for(let y1=y-1;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
voxels.setVoxelId(x,6,z,135)/*6是默认的海平面高度,可以自行修改 */
}
else if(y==6){/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y,z,135);
for(let y1=y-1;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
}
else{
y+=randomNum(0,3);/*删掉了可能会出现一片喵…… */
if(y>6){/*6是默认的海平面高度,可以自行修改 */
y=6
}
for(let y1=y;y1<=6;y1++){/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y1,z,3喵)
}
voxels.setVoxelId(x,6,z,3喵);/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y-1,z,135);
for(let y1=y-2;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
}
await sleep(1);
lasty=y;
}
world.say(x+'/'+zoom);
await sleep(1);
};
}
o()
如果不能运行请回复)
(毕竟这本来是我用去速建1024的)))硬生生的给搞成了自定义大小)))也许会有bug))))
GZ006这个版本的沙滩会更少点)水会多一些)))
/*
使用说明:
通过zoom修改速建范围(其他的看看注释)
在将本代码放入控制台前,
可以先放至代码区运行试试效果,
觉得ok后再放到控制台运行!
*/
function randomNum(minNum, maxNum) {
switch (arguments.length) {
case 1:
return parseInt(Math.random() * minNum + 1, 10);
break;
case 2:
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
break;
default:
return 0;
break;
}
};
var y=2;
var lasty=2;
var zoom=256;/*必须小于1024!!!否则后果自负 */
async function o(){
for(let x=0;x<=zoom;x++){
lasty=3;/*这个也可以更改)))影响似乎不大)))*/
for(let z=0;z<=zoom;z++){
for(let y=0;y<=9;y++){
voxels.setVoxelId(x,y,z,0)
}
y=lasty;
if(y<4){
y=5
}
if(x!==0){
for(let y1=0;y1<=32;y1++){/*根据地图y坐标改! */
if(voxels.getVoxelId(x-1,y1,z)==127||voxels.getVoxelId(x-1,y1,z)==135){
if(z==0){
y=y1;
if(y<6){/*这个if分支里面的数字都可以根据个人喜好更改 */
y+=randomNum(-1,3)
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,2)
}
}else{
for(let y2=0;y2<=32;y2++){/*同上) */
if(voxels.getVoxelId(x,y2,z-1)==127||voxels.getVoxelId(x,y2,z-1)==135){
y=(y1+y2)/2-1;
if(y<8){/*这个if分支里面的数字都可以根据个人喜好更改 */
y+=randomNum(0,3);
if(y<3){
y+=randomNum(0,3)
}
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,3)
}
if(y1==y2&&y!==y1){
y=y1
}
}
}
}
}
}
}else{
if(y<6){/*6是默认的海平面高度,可以自行修改 */
y+=randomNum(-1,3)
}else if(y>17){/*这里的数字关系到生成地形的平均高度! */
y+=randomNum(-3,1)
}else{
y+=randomNum(-1,3)
}
}
if(y<2){
y=2
}else if(y>28){/*这里的数字关系到生成地形的最高高度! */
y=28
}
if(y>6){/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y,z,127);
for(let y1=y-1;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
voxels.setVoxelId(x,6,z,135)/*6是默认的海平面高度,可以自行修改 */
}
/*else if(y==6){6是默认的海平面高度,可以自行修改
voxels.setVoxelId(x,y,z,135);
for(let y1=y-1;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
}*/
else{
y+=randomNum(0,3);/*删掉了可能会出现一片喵…… */
if(y>6){/*6是默认的海平面高度,可以自行修改 */
y=6
}
for(let y1=y;y1<=6;y1++){/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y1,z,3喵)
}
voxels.setVoxelId(x,6,z,3喵);/*6是默认的海平面高度,可以自行修改 */
voxels.setVoxelId(x,y-1,z,135);
for(let y1=y-2;y1>=0;y1--){
voxels.setVoxelId(x,y1,z,125)
}
}
await sleep(1);
lasty=y;
}
world.say(x+'/'+zoom);
await sleep(1);
};
}
o()
效果展示:box3.codemao.cn/e/0b1dc159ec3cb20f5049
点赞0
评论