Je veux assigner chaque cercle créé dans cette boucle à sa couleur respective. Maintenant, ils ont tous la même couleur, bien que chaque objet $ circle ait une couleur différente. J'ai lu que j'ai besoin de fermer le chemin ou de remplir avant la prochaine boucle qui im assez sûr que j'ai fait mais cela n'a pas encore fonctionné. Mon code est ci-dessous:Changer le canvas fillStyle dans la boucle
drawCircles: function() {
this.ctx.beginPath();
for(var i = 0; i < this.circles.length; i++){
var $circle = this.circles[i];
this.ctx.fillStyle = $circle.color; //blue
var tx = $circle.destX - $circle.x,
ty = $circle.destY - $circle.y,
dist = Math.sqrt(tx*tx+ty*ty);
if(tx > 0){
$circle.x += (tx/dist) * ($circle.speed > 0 ? $circle.speed -= 0.005 : $circle.speed += .2);
$circle.y += (ty/dist) * ($circle.speed > 0 ? $circle.speed -= 0.005 : $circle.speed += .2);
}
this.ctx.arc($circle.x,$circle.y,$circle.size,0,Math.PI*2);
this.ctx.clearRect(0,0,this.ctx.canvas.width, this.ctx.canvas.height);
this.ctx.moveTo($circle.x + $circle.size, $circle.y); // so simply add 'rad' to the centerX
}
this.ctx.closePath();
this.ctx.fill();
}
Vous n'avez pas besoin du closePath ,. mais vous avez besoin d'un beginPath avant chaque arc de couleur différente. – Blindman67