Page 1 sur 1

Le jeu du Serpent.

Posté : 28 juil. 2022, 19:45
par a.tereygeol
Bonjour,

A 13:33, le rectangle rouge (du serpent) ne s'affiche pas sur mon PC.

Un rectangle rouge commençant à (5 px, 3 px) long de 3 px devrait s'afficher.

Chrome indique comme erreur ceci uniquement : "var x = position[0] * blockSize;"

Voici le code source complet :

window.onload = function()

{

var canvasWidth = 900;

var canvasHeight = 600;

var blockSize = 30;

var ctx;

var delay = 100; //fonction qui créée du temps (0.1 secondes).

var snakee;



init();//j'exécute ma fonction init.



function init()

{

var canvas = document.createElement('canvas');

canvas.width = canvasWidth;

canvas.height = canvasHeight;

canvas.style.border = "1px solid";

document.body.appendChild(canvas);

ctx = canvas.getContext('2d');

snakee = new Snake([6,4],[5,4],[4,4]);//le body c'est [6,4],[5,4],[4,4].

refreshCanvas();



}



function refreshCanvas()//On dessine un serpent et non plus des rectangles.

{

ctx.clearRect(0, 0, canvasWidth, canvasHeight);//On veux effacer le contenu.

snakee.draw();

setTimeout(refreshCanvas, delay);//On veut éxécuter la fonction refreshCanvas. Le delay c'est 0.1 sec.

}



function drawBlock(ctx, position)

{

var x = position[0] * blockSize;

var y = position[1] * blockSize;

ctx.fillRect(x, y, blockSize, blockSize);

}



function Snake(body)//notre serpent a un corps qui sera body.

{

this.body = body;

this.draw = function()

{

ctx.save();

ctx.fillStyle = "#ff0000";

for(var i = 0; i < this.body.length; i++);



{

drawBlock(ctx, this.body);

}

ctx.restore();

};

}

}

Chrome indique : "Cannot read properties of undefined (reading '0').

Pouvez-vous m'aider s'il vous plaît ?

Merci d'avance,

Bien cordialement,

Adrien TEREYGEOL

Re: Le jeu du Serpent.

Posté : 30 juil. 2022, 13:17
par webmaster
Bonjour,

La création de Snake ne me semble pas correcte
Il faut lui passer un tableau de coordonnées dans le paramètre body :

Code : Tout sélectionner

        snakee = new Snake([ [6, 4], [5, 4], [4, 4] ]); //le body c'est [6,4],[5,4],[4,4].
Je pense que cela ira bien mieux après

Re: Le jeu du Serpent.

Posté : 04 oct. 2022, 09:17
par EdithPerrot
Oui, vous avez donné d'excellents conseils pour aider à résoudre le problème.

Re: Le jeu du Serpent.

Posté : 31 janv. 2023, 05:00
par gerbiltripwire
Ce problème est courant. Je suis assez frustré avec ça parfois.
the backrooms

Re: Le jeu du Serpent.

Posté : 17 mars 2023, 08:49
par Nanisa
Thank you, I got the answer Tetris