我有这个项目,我正在努力,需要有这个“球”是一个随机的颜色从启动。我可以生成随机颜色,但是球在整个画面中不断产生新的颜色。我只需要每一个球是一个随机的颜色。帮帮我?!我只是一名介绍性学生,所以我还不太了解!这是目前我的代码:Javascript随机颜色“球”不能正常工作
var context;
var x = Math.floor(450 * Math.random() + 1);
var y = 0;
var dx = 0;
var dy = 2;
var xx = 200;
function startGame() {
context = myCanvas.getContext('2d');
setInterval('drawEverything()', 50);
}
function drawEverything() {
drawCircle();
drawRectangle();
}
function drawCircle() {
context.clearRect(0, 0, 450, 300);
context.beginPath();
context.arc(x, y, 10, 0, Math.PI * 2);
context.closePath();
context.fillStyle = getRandomColor();
context.fill();
x += dx;
y += dy;
}
function getRandomColor() {
var letters = 'ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
您是否尝试将颜色存储在函数外定义的变量中,您使用'x'和'y'的方式?然后在'startGame()'函数内设置一次颜色。 – nnnnnn
@nnnnnn是正确的。因为您的“drawEverything()”每隔50次执行一次,所以每次都会以新颜色*渲染球,因为“drawEverything()”会以新颜色生成新球。将颜色存储在函数外部的变量中,然后它将保持不变。 –