Soalan: Apabila melukis berbilang bola di atas kanvas, bagaimana saya boleh membuat imej latar belakang setiap bola berbeza?
Apa yang saya lakukan sekarang ialah menjadikan setiap bola berwarna berbeza, dan saya mahu mengisinya dengan gambar.
Sebahagian daripada kod:
`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();`
Kesan semasa:
Anda menukar pautan dalam teg img, kemudian salin dan tampal kod ke ujian tempatan anda. Tetapi sejujurnya, menggunakan jubin latar belakang untuk mencapai lukisan adalah sangat sukar untuk dikawal.
Satu lagi cadangan yang saya berikan kepada anda ialah gunakan drawImage untuk melukisnya dahulu, dan kemudian gunakan globalCompositeOperation untuk memintas bulatan.
Ditulis secara gradient begini... kesannya hampir sama walaupun hodoh. .
Kemas kini...
Ketelusan Rawak Warna Rawak Kecerunan
Rasanya kod anda yang dikomen keluar hanyalah begitu
// var pat=cxt.createPattern(img,"no-repeat");
// cxt.fillStyle = pat;
Ini adalah demo yang ditulis oleh saya, tetapi keserasian belum diuji
https://codepen.io/jackpan/pe...