用户:
中國萬歲_青铁迷查看:2 回复:4 评论:2 创建时间:2022-08-01T09:16:53
源代码(贡献者:FML饭米粒):
let metros = world.querySelectorAll('.地铁');
let doors = world.querySelectorAll('.门');
let time = 10; // 地铁从a站到b站的时间(单位秒)
let pos = new Box3Vector3(0, 0, -50); // 地铁从a到b移动距离
let open = new Box3Vector3(0, 0, 3); // 开门幅度
let openTime = 5; // 开门持续时长
let moveTime = 1; // 开门用时
metros.forEach((entity) => {
entity.startPos = new Box3Vector3()
entity.endPos = new Box3Vector3()
entity.startPos.copy(entity.position);
entity.endPos.copy(entity.position.add(pos));
});
doors.forEach((entity) => {
entity.startClosePos = entity.startPos
entity.startOpenPos = entity.startPos.add(open)
entity.endClosePos = entity.endPos
entity.endOpenPos = entity.endPos.add(open)
});
(async () => {
while (true) {
metros.forEach((entity) => {
entity.animate([
{ position: entity.startPos, duration: 1 },
{ position: entity.endPos }
], {
iterations: 1,
duration: time * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(time * 1000);
await sleep(1000);
doors.forEach((entity) => {
entity.animate([
{ position: entity.endClosePos, duration: 1 },
{ position: entity.endOpenPos }
], {
iterations: 1,
duration: moveTime * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(moveTime * 1000);
await sleep(1000);
await sleep(openTime * 1000);
await sleep(1000);
doors.forEach((entity) => {
entity.animate([
{ position: entity.endOpenPos, duration: 1 },
{ position: entity.endClosePos }
], {
iterations: 1,
duration: moveTime * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(moveTime * 1000);
await sleep(1000);
metros.forEach((entity) => {
entity.animate([
{ position: entity.endPos, duration: 1 },
{ position: entity.startPos }
], {
iterations: 1,
duration: time * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(time * 1000);
await sleep(1000);
doors.forEach((entity) => {
entity.animate([
{ position: entity.startClosePos, duration: 1 },
{ position: entity.startOpenPos }
], {
iterations: 1,
duration: moveTime * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(moveTime * 1000);
await sleep(openTime * 1000);
await sleep(1000);
doors.forEach((entity) => {
entity.animate([
{ position: entity.startOpenPos, duration: 1 },
{ position: entity.startClosePos }
], {
iterations: 1,
duration: moveTime * 16,
direction: Box3AnimationDirection.NORMAL
});
});
await sleep(moveTime * 1000);
await sleep(1000);
}
})();
报错内容:
