猫史档案馆


【代码】简易的计时器API

用户:星星上的雪花星星上的雪花查看:3 回复:9 评论:3 创建时间:2021-12-12T19:22:25


class Box3Timed {
    constructor() {
        (async () => {
            this.time = 0;
            this.over = false;
            while (!this.over) {
                await sleep(1);
                this.time += 1;
            }
        })()
    }
    stop() {
        return this.over = true
    }
    get() {
        return this.time
    }
}

使用示例:

//让玩家知道自己进入地图多久了
world.onPlayerJoin(({entity})=>{
    entity.timer = new Box3Timed()
});

//获取进入多久的时间
world.onChat(({entity,message})=>{
    if(message !== "获取时间")return;
    world.say("你已进入地图:"+entity.timer.get()+"毫秒");//如果要化成秒就除以1000
});

切记:使用完了不用请stop掉,避免计时太多而卡崩

//停止计时
world.onPlayerLeave(async ({ entity }) => {
    entity.timer.stop()
});

第一次写自主API,不喜别骂。代码仅供学习及使用,不可抄袭或盗用


回复

上一页1 页 / 共 1下一页
一缕余晖一缕余晖

大无语事件,编程猫最强海王,脚踏万条船的zha男:https://shequ.cod喵/wiki/forum/415984

点赞0


评论


一缕余晖一缕余晖

对不起,我发现自己的程序没有关闭,所以你们的帖子才会有广告,对不起啊

点赞0


评论


全能代码师全能代码师

nb

点赞0


评论


全能代码师全能代码师

这么nb的代码怕不是可以…

点赞0


评论


浮生awa浮生awa

nb

点赞0


评论


ZNS_哪吒ZNS_哪吒

点赞0


评论


一缕余晖一缕余晖

sofa~~~

点赞0


评论


FML饭米粒FML饭米粒

这好像没有必要用class吧

在onPlayerJoin里加入

entity.joinTime = new Date().valueOf()// 加入的时间(毫秒数)

要读取的时候直接

new Date().valueOf() - entity.joinTime // 过了的时间(毫秒)

点赞0


评论


浮生awa浮生awa

我记得有个升级版计时器来着,在哪里?

点赞0


评论