我正在制作一个简单的网页游戏,我试图让积木生成随机颜色(不改变颜色),但它们每毫秒都会闪烁颜色。
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();
}
}
}
}
答案 0 :(得分:0)
您的 Pastebin 具有代码 var interval = setInterval(draw, 10);
(第 185 行); setInterval
接受所提供函数执行之间的 毫秒 数作为其第二个参数 - 因此它试图每秒运行 100 次(每 10 毫秒)。尝试将 10
更改为 1000
(1 秒)或类似的值。
编辑:根据对原始问题中问题的澄清,事实证明问题是每次渲染游戏场景时都会随机分配砖块颜色;这似乎已通过将随机化器移出渲染循环(drawBricks()
)函数来解决。