Le jeu du Serpent.

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
a.tereygeol
Messages : 1
Enregistré le : 28 juil. 2022, 19:41

Le jeu du Serpent.

Message par a.tereygeol » 28 juil. 2022, 19:45

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

Avatar du membre
webmaster
Administrateur du site
Messages : 483
Enregistré le : 28 févr. 2017, 15:19

Re: Le jeu du Serpent.

Message par webmaster » 30 juil. 2022, 13:17

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
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

EdithPerrot
Messages : 1
Enregistré le : 04 oct. 2022, 09:11

Re: Le jeu du Serpent.

Message par EdithPerrot » 04 oct. 2022, 09:17

Oui, vous avez donné d'excellents conseils pour aider à résoudre le problème.

Répondre