用户:
面条awa代岛同名查看:7 回复:7 评论:7 创建时间:2022-01-10T10:29:41
----------------------------------------------------防窥线-------------------------------------------------
今天教大家建筑(第一次发帖)
首先准备方块
好了,你被喵了![]()
教程以后发
成品:
面条awa代岛同名旁边那个天梯代码
(async () => {
var c = new Box3Vector3(45, 9, 75);//底部中心
var r = 3;//半径
var h = 15;//高度
var a = 1;//这个数字越大,转得程度越大
//对数据进行处理
var y = c.y;
var voxel = [];
var list = [];
for (let i = 0; i <= r; i++) {
list.push([])
voxel.push([])
}
for (let i = 0; i <= r; i++) {
for (let x = c.x - r; x < c.x; x++) {
for (let z = c.z; z <= c.z + r; z++) {
if (Math.round(c.distance(new Box3Vector3(x, y, z))) === i) {
list[i].push(new Box3Vector3(x, y, z));
voxel[i].push(voxels.getVoxel(x, y, z));
}
}
}
await sleep(100)
for (let x = c.x; x <= c.x + r; x++) {
for (let z = c.z + r; z > c.z; z--) {
if (Math.round(c.distance(new Box3Vector3(x, y, z))) === i) {
list[i].push(new Box3Vector3(x, y, z));
voxel[i].push(voxels.getVoxel(x, y, z));
}
}
}
await sleep(100)
for (let x = c.x + r; x > c.x; x--) {
for (let z = c.z; z >= c.z - r; z--) {
if (Math.round(c.distance(new Box3Vector3(x, y, z))) === i) {
list[i].push(new Box3Vector3(x, y, z));
voxel[i].push(voxels.getVoxel(x, y, z));
}
}
}
await sleep(100)
for (let x = c.x; x >= c.x - r; x--) {
for (let z = c.z - r; z < c.z; z++) {
if (Math.round(c.distance(new Box3Vector3(x, y, z))) === i) {
list[i].push(new Box3Vector3(x, y, z));
voxel[i].push(voxels.getVoxel(x, y, z));
}
}
}
list[0] = [c];
voxel[0] = [voxels.getVoxel(c.x, c.y, c.z)];
}
//生成(半径越大,时间越久)
for (let i = 0; i < list[r].length; i++) {
var line_position = [];
var line_voxel = [];
for (let j = 0; j <= r; j++) {
line_position.push(list[j][(Math.round(i * list[j].length / list[r].length)) % voxel[j].length])
line_voxel.push(voxel[j][(Math.round(i * voxel[j].length / voxel[r].length)) % voxel[j].length])
}
for (let j = list[r].indexOf(line_position[r]); j <= list[r].indexOf(line_position[r]) + a * h; j += a) {
var num = j % list[r].length;
for (let k = 0; k <= r; k++) {
voxels.setVoxel(
list[k][(Math.round(num * voxel[k].length / voxel[r].length)) % voxel[k].length].x,
(j - list[r].indexOf(line_position[r])) / a + y,
list[k][(Math.round(num * voxel[k].length / voxel[r].length)) % voxel[k].length].z,
line_voxel[k]
);
}
await sleep(100)
}
}
})();点赞0
评论