可变值更改不会延迟setTimeout吗?

问题描述 投票:0回答:1

我正在制作红绿灯类型的游戏。这是红绿灯改变颜色的部分:

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);
};

如果我取出绿色变量,则可以正常工作,但我需要它,以便游戏知道玩家何时可以移动。我将不胜感激!

javascript canvas settimeout
1个回答
1
投票

您覆盖变量green

最初是function,在red功能内,将true分配给它。这就是您的setTimeout(green,r);无法正常工作的原因。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.