The code consists of creating a wolf with the arrows on the keyboard, I already made a functional code, but a wolf remains behind as if it were a wolf line.
How do I remove the wolf old as it were? That is, the wolf before the new one that is drawn when I press the key.
My code:
console.log("*script is working*");
var vp = document.getElementById("villaPlatzi");
var papel = vp.getContext("2d");
var flechas = {
UP: 38,
DOWN: 40,
LEFT: 37,
RIGHT: 39,
};
document.addEventListener("keyup", moverLobo);
function moverLobo(evento)
{
papel.drawImage(lobo.objeto, xLobo, yLobo);
var movimientoLobo = 10;
switch(evento.keyCode)
{
case flechas.UP:
yLobo = yLobo - movimientoLobo
break;
case flechas.DOWN:
yLobo = yLobo + movimientoLobo
break;
case flechas.LEFT:
xLobo = xLobo - movimientoLobo
break;
case flechas.RIGHT:
xLobo = xLobo + movimientoLobo
break;
default:
console.log("***************************************")
break;
}
}
var xLobo = 150;
var yLobo = 150;
var fondo = {
url: "https://cdn.pixabay.com/photo/2015/06/23/13/51/pattern-818713_960_720.png",
loadState: false,
};
fondo.objeto = new Image();
fondo.objeto.src = fondo.url;
fondo.objeto.addEventListener("load", cargarFondo);
var vaca = {
url: "https://img.icons8.com/color/2x/cow.png",
loadState: false,
};
vaca.objeto = new Image();
vaca.objeto.src = vaca.url;
vaca.objeto.addEventListener("load", cargarVaca);
var pollo = {
url: "https://img.icons8.com/color/2x/chicken.png",
loadState: false,
};
pollo.objeto = new Image();
pollo.objeto.src = pollo.url;
pollo.objeto.addEventListener("load", cargarPollo);
var cerdo = {
url: "https://img.icons8.com/color/2x/pig.png",
loadState: false,
};
cerdo.objeto = new Image();
cerdo.objeto.src = cerdo.url;
cerdo.objeto.addEventListener("load", cargarCerdo);
var lobo = {
url: "https://img.icons8.com/color/2x/wolf.png",
loadState: false,
};
lobo.objeto = new Image();
lobo.objeto.src = lobo.url;
lobo.objeto.addEventListener("load", cargarLobo)
function cargarFondo()
{
fondo.loadState = true;
dibujar();
}
function cargarVaca()
{
vaca.loadState = true;
dibujar();
}
function cargarCerdo()
{
cerdo.loadState = true;
dibujar();
}
function cargarPollo()
{
pollo.loadState = true;
dibujar();
}
function cargarLobo()
{
lobo.loadState = true;
moverLobo();
}
function dibujar(evento)
{
if(fondo.loadState == true)
{
papel.drawImage(fondo.objeto, 0, 0);
}
if (vaca.loadState == true)
{
var cantidad = aleatorio(5, 20);
console.log("Hay " + cantidad + "vacas!");
for(var v = 0; v < cantidad; v++)
{
var x = aleatorio(0, 420);
var y = aleatorio(0, 420);
papel.drawImage(vaca.objeto, x, y);
}
}
if (pollo.loadState == true)
{
var cantidad = aleatorio(5, 20);
console.log("Hay " + cantidad + "pollos!");
for(var p = 0; p < cantidad; p++)
{
var x = aleatorio(0, 420);
var y = aleatorio(0, 420);
papel.drawImage(pollo.objeto, x, y);
}
}
if (cerdo.loadState == true)
{
console.log("Hay " + cantidad + "cerdos!");
var cantidad = aleatorio(5, 20);
for(var c = 0; c < cantidad; c++)
{
var x = aleatorio(0, 420);
var y = aleatorio(0, 420);
papel.drawImage(cerdo.objeto, x, y);
}
}
if (lobo.loadState == true)
{
console.log("el lobo esta suelto :v");
papel.drawImage(lobo.objeto, xLobo, yLobo);
}
}
function aleatorio (min, max)
{
var resulato;
resultado = Math.floor(Math.random() * (max - min + 1)) + min;
return resultado;
}
<canvas id ="villaPlatzi" width="400px" height="300px"></canvas>