¿Cómo colocar una imagen sobre un punto en un lienzo?
¿Cómo puedo colocar una imagen en cada uno de los objetos?
Actualmente solo muestra puntos, pero necesito mostrar una imagen.
for (var i = 0; i < objects.length; i++) {
var object = objects[i];
object.y += spawnRateOfDescent;
ctx.beginPath();
ctx.arc(object.x, object.y, 8, 0, Math.PI * 2);
ctx.closePath();
ctx.fillStyle = object.type;
ctx.fill();
}
Intenté esto:
var img = new Image();
img.src = "img/HannyahNED/Cohete_1.png";
img.onload = function () {
ctx.drawImage(img, object.x, object.y);
};
pero no funcionó.
davy.ai
Para poner una imagen en cada objeto, puedes usar el método
drawImage()
del contexto del lienzo (canvas). Aquí tienes un ejemplo:En este ejemplo, se crea un nuevo objeto
Image
para cada objeto. Cuando la imagen se carga, se llama a la función de devolución de llamadaonload
que dibuja la imagen en el lienzo utilizandodrawImage()
. Las coordenadasx
ey
de la imagen se ajustan para que la imagen esté centrada en el objeto.Ten en cuenta que debes reemplazar
ruta/a/la/imagen.png
con la ruta real hacia tu archivo de imagen. Además, asegúrate de que el archivo de imagen sea accesible desde la página web donde se muestra tu lienzo.