生成随机颜色时如何修复颜色闪烁

时间:2021-06-02 19:16:34

标签: javascript

我正在制作一个简单的网页游戏,我试图让积木生成随机颜色(不改变颜色),但它们每毫秒都会闪烁颜色。

    function drawBricks() {
        for (var c = 0; c < brickColumnCount; c++) {
            for (var r = 0; r < brickRowCount; r++) {
                if (bricks[c][r].status == 1) {
                    var brickX = (c * (brickWidth + brickPadding)) + brickOffsetLeft;
                    var brickY = (r * (brickHeight + brickPadding)) + brickOffsetTop;
                    bricks[c][r].x = brickX;
                    bricks[c][r].y = brickY;
                    ctx.beginPath();
                    ctx.rect(brickX, brickY, brickWidth, brickHeight);
                    randomNumber = Math.floor(Math.random() * 4 + 1);
                    if (randomNumber == 1)
                        ctx.fillStyle = "#0095DD";

                    if (randomNumber == 2)
                        ctx.fillStyle = "#FF0000";
                    
                    if (randomNumber == 3)
                        ctx.fillStyle = "#FF8A00";

                    if (randomNumber == 4)
                        ctx.fillStyle = "0100FF";

                    ctx.fill()
                    ctx.closePath();
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

您的 Pastebin 具有代码 var interval = setInterval(draw, 10);(第 185 行); setInterval 接受所提供函数执行之间的 毫秒 数作为其第二个参数 - 因此它试图每秒运行 100 次(每 10 毫秒)。尝试将 10 更改为 1000(1 秒)或类似的值。

编辑:根据对原始问题中问题的澄清,事实证明问题是每次渲染游戏场景时都会随机分配砖块颜色;这似乎已通过将随机化器移出渲染循环(drawBricks())函数来解决。