变量值更改不会延迟setTimeout?

时间:2015-11-22 14:59:36

标签: javascript canvas settimeout

我正在制作红光绿光型游戏。以下是红绿灯变色的部分:

var green = function() {
    var r = Math.floor(Math.random() *5000 + 3000);
    ctx.fillStyle = "green";
    ctx.fillRect(900, 580, 200, 100);
    green = true;
    setTimeout(red, r);
};
var red = function() {
    var r = Math.floor(Math.random() *3000 + 2000);
    ctx.fillStyle = "red";
    ctx.fillRect(900, 580, 200, 100);
    green = false;
    setTimeout(green, r);
};

如果我取出变量绿色,那么它工作正常,但我需要它,所以游戏知道玩家什么时候可以移动。我将不胜感激任何帮助!

1 个答案:

答案 0 :(得分:1)

您覆盖变量green

最初是function,在red功能中,您可以为其分配true。这就是您setTimeout(green,r);无法正常工作的原因。