Ich habe dieses Projekt, ich arbeite an, und müssen diese "Ball" eine zufällige Farbe aus dem Start-up haben. Ich kann die zufällige Farbe erzeugen, aber der Ball erzeugt ständig neue Farben während des gesamten Laufs auf dem Bildschirm. Ich brauche nur, dass jeder Ball eine zufällige Farbe hat. Hilfe?! Ich bin nur ein Anfänger, also weiß ich noch nicht viel! Hier ist mein Code zur Zeit:Javascript zufällige Farbe "Ball" funktioniert nicht richtig
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;
}
Haben Sie versucht, die Farbe in einer Variablen zu speichern, die außerhalb der Funktionen definiert ist, so wie Sie es mit 'x' und' y' machen? Stellen Sie die Farbe dann einmal innerhalb der 'startGame()' Funktion ein. – nnnnnn
@nnnnnn ist richtig. Da Ihr "drawEverything()" in Intervallen von 50 ausgeführt wird, wird der Ball jedes Mal mit einer neuen Farbe * dargestellt, da "drawEverything()" einen neuen Ball mit einer neuen Farbe generiert. Speichern Sie die Farbe in einer Variablen außerhalb der Funktion, dann bleibt sie konstant. –