用户:
中國萬歲_青铁迷查看:9 回复:4 评论:9 创建时间:2022-07-29T16:55:45
如题………………,要两个站的,可以自动开门
在下面发代码,求求了
FML饭米粒/**
* 使用说明:
* 1.所有需要与地铁同步移动的实体请加标签“地铁”(包括门)
* 2.门另加一个标签“门”
* 3.所有加了注释的(9~13行)数值可改,其余建议不改
*/
let metros = world.querySelectorAll('.地铁');
let doors = world.querySelectorAll('.门');
let time = 5; // 地铁从a站到b站的时间(单位秒)
let pos = new Box3Vector3(50, 0, 0); // 地铁从a到b移动距离
let open = new Box3Vector3(2, 0, 0); // 开门幅度
let openTime = 2; // 开门持续时长
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);
}
})();
随手写的,用是能用,优化嘛。。
点赞0
评论