Javascript erreur

Zed-X Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
bonjours,
Je voudrais que lorsque mon canvas se dessine aux nouvelle coordonnées après avoir appuyé sur la touche, il s'efface aux précédentes coordonnées (pour donner l'impression de déplacer mon image avec les touches)
j'ai donc utilisé une fonction clearrect pour cela mais lorsque je lance le jeu, j'ai
une erreur:
TypeError: Not enough arguments to CanvasRenderingContext2D.clearRect.
Merci d'avance pour votre aide
voici mon code :
function montreJeu(){

document.getElementById('pglobal').className="cache";
document.getElementById('jglobal').className="montre";

}

var monCanvas = document.getElementById('dessin');
var ctx = monCanvas.getContext('2d');
ctx.clearRect(100,100, monCanvas.width, monCanvas.height);
tabl=[['ninja.png', 0, 400]]; // source, x, y


var ninja = new Image();
ninja.src = tabl[0][0]
ninja.onload = function(){
ctx.drawImage(ninja,tabl[0][1],tabl[0][2]);
};

window.setInterval(function () {bouclejeu()}, 100);


function bouclejeu(){
 //efface clearrect
    ctx.clearRect(tabl[0][2]);
 ctx.drawImage(ninja,tabl[0][1],tabl[0][2]);
 console.log(tabl[0][2]);
}

document.addEventListener('keypress',function(depl)
{
   if (depl.keyCode === 38) //fleche du haut
   {
   console.log('ninja.png');
  tabl[0][2] = tabl[0][2]-10;

   }
   else if (depl.keyCode === 40)
   {
   console.log('ninja2.png');
 tabl[0][2] = tabl[0][2]+10;
    
   }
}, false);
 

1 réponse

Utilisateur anonyme
 
Je présume que c'est cette ligne là où tu as l'erreur:

ctx.clearRect(tabl[0][2]);

C'est normal car tu as pas mis tout les paramètres, il lui fait deux points, et pour savoir où se trouve un point il faut 2 coordonées (X et Y)

Du coup clearRect s'écrit de cette façon:

ctx.clearRect(x1,y1,x2,y2);

Si tu veux tout effacer tu peux toujours faire ceci

ctx.clearRect(0, 0, monCanvas.width, monCanvas.height);
0