Question : Lorsque je dessine plusieurs boules sur toile, comment puis-je rendre l'image d'arrière-plan de chaque boule différente ?
Ce que j'ai fait maintenant, c'est donner à chaque boule une couleur différente et je veux la remplir d'images.
Partie du code :
`cxt.fillStyle = ballArray[i].color;
// var pat=cxt.createPattern(img,"no-repeat");
// cxt.fillStyle = pat;
cxt.arc(ballArray[i].x, ballArray[i].y, ballArray[i].r, 0, Math.PI * 2, true);
cxt.closePath();
cxt.fill();`
Effet actuel :
Vous modifiez le lien dans la balise img, puis copiez et collez le code dans votre test local. Mais pour être honnête, utiliser le carrelage d’arrière-plan pour réaliser un dessin est très difficile à contrôler.
Une autre suggestion que je vous donne est d'utiliser drawImage pour le dessiner d'abord, puis d'utiliser globalCompositeOperation pour intercepter le cercle.
Écrit sous forme de dégradé comme celui-ci... l'effet est presque le même, même s'il est moche. .
Mise à jour...
Dégradé de couleur aléatoire, transparence aléatoire
J'ai l'impression que votre code commenté n'est que cela
// var pat=cxt.createPattern(img,"no-repeat");
// cxt.fillStyle = pat;
Il s'agit d'une démo écrite par moi, mais la compatibilité n'a pas été testée
https://codepen.io/jackpan/pe...