gpt4 book ai didi

javascript - Javascript/jQuery/etc 中测量耗时/触发事件的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:22 24 4
gpt4 key购买 nike

我正在尝试使用 HTML5 (Javascript) 制作一个简单的游戏。我想对事件施加时间限制。例如,当玩家进入屋顶正在向他们靠近的房间时,我想给他们几秒钟的时间来做出决定,然后自动让其他事件发生。但是,如果他们做出决定,我根本不希望触发定时功能。

我怎样才能完成这样的事情?

最佳答案

为此,我喜欢使用自定义 Timer 类

            var Timer = function(callback, delay, autoRun){

this.running = (autoRun == undefined)?true:autoRun;
this.completed = false;
this.delay = delay;
this.callback = callback;
};

Timer.prototype.pause = function() {
this.running = false;
return this;
};

Timer.prototype.resume = function() {
this.running = true;
return this;
};

Timer.prototype.finish = function(){
this.running = false;
this.completed = true;
this.callback();
return this;
};

您只需创建一个新计时器,将其添加到计时器列表中,这些计时器会通过您的主绘制循环按固定数量更新(20 毫秒比较合适)。因此,如果您的游戏滞后,用户不会受到惩罚;)

例如: var listOfTimers = [];

function draw(){
//Called every frame
for(var i = 0; i<listOfTimers.length; i++){
if(listOfTimers[i].running){
listOfTimers[i].delay -= 20;

if(listOfTimers[i].delay <= 0){
listOfTimers[i].finish();
}
}

//The rest of your draw logic...
}

关于javascript - Javascript/jQuery/etc 中测量耗时/触发事件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33702519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com