猫史档案馆


[神奇代码岛]如何实现地铁的功能

用户:中國萬歲_青铁迷中國萬歲_青铁迷查看:9 回复:4 评论:9 创建时间:2022-07-29T16:55:45


如题………………,要两个站的,可以自动开门

在下面发代码,求求了

 


回复

上一页1 页 / 共 1下一页
BOSS不爱吃鱼的小鱼BOSS不爱吃鱼的小鱼

啊这,这不光光是代码的问题

 

点赞1


评论


FML饭米粒FML饭米粒

这个代码只需要给我九九八十一天(划掉)就能完成

点赞0


评论


FML饭米粒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


评论


中國萬歲_青铁迷中國萬歲_青铁迷

center_image

点赞0


评论