提高生命游戏娱乐的计算效率

时间:2014-01-25 20:18:18

标签: javascript performance computation-theory conways-game-of-life

我在JavaScript中重现了生命游戏。它有效,但在计算上无效。我有这个功能,可以在几代人之间等待。

var speed = 500; //milliseconds

function live() { 
    middleMan = setInterval(processGeneration, speed);
    if (!dead) {
         window.clearInterval(middleMan);
         live();
    }
}

500毫秒没有任何事情发生,然后是计算任务的海啸。这给出了死时间和滞后的讽刺组合。我怎样才能使用500毫秒?

1 个答案:

答案 0 :(得分:0)

您可以使用

function live() { 
    processGeneration();
    if (!dead) {
         setTimeout(live, speed);
    }
}
live();

function live() { 
    processGeneration();
    if (dead) {
         clearInterval(timer);
    }
}
var timer = setInterval(live, speed);

function live() {
    processGeneration();
    if (!dead) {
         requestAnimationFrame(live);
    }
}
requestAnimationFrame(live);

但请注意,如果您使用setInterval,则对live的每次调用都必须少于speed