Контекст холста Метод drawImage позволит вам визуализировать изображение на холсте почти так же, как вы рисуете круг. Вы можете указать координаты x, y, ширину и высоту. Предполагая, что вы в настоящее время визуализируете большой двоичный объект, выполняя что-то вроде:
ctx.beginPath();
ctx.arc(blob.pos.x, blob.pos.y, blob.radius, 0, 2 * Math.PI);
ctx.fill();
ctx.closePath;
Затем вы можете заменить свой код на:
var img = document.getElementById("cellImage"); //or however you want to get an img element
ctx.drawImage(img, blob.pos.x - blob.radius/2, blob.pos.y - blob.radius/2, blob.radius, blob.radius);//make sure your image is square, otherwise it will squish it weirdly
Причина, по которой мы вычитаем radius/2
из координат, заключается в том, что входные координаты - это верхний левый угол, а не центр.
В качестве альтернативы вы сказали, что капля движется аналогично agar.io. Это предполагает, что он всегда находится в центре холста, и все движется относительно него. В этом случае код еще проще, так как вам просто нужно визуализировать изображение в центре:
var img = document.getElementById("cellImage"); //or however you want to get an img element
ctx.drawImage(img, canvas.width/2 - blob.radius/2, canvas.height/2 - blob.radius/2, blob.radius, blob.radius); //we just use the centre coordinates of the canvas instead of the blob coordinates.
Надеюсь, это поможет!