Javascript erreur

Fermé
Zed-X Messages postés 19 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 15 août 2017 - Modifié par Chris 94 le 2/05/2015 à 16:06
 Utilisateur anonyme - 2 mai 2015 à 16:32
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
2 mai 2015 à 16:32
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