Contexte: Je fais une version du jeu populaire, Snake. Et je rencontre quelques problèmes quand j'essaie d'éviter l'apparition de la nourriture au même endroit des parties de mon serpent.Google Chrome se bloque lorsque mon script est en cours
Je produit le code avec le cadre Phaser:
generateFood: function() {
var randomX, randomY;
var rightLocation = false;
var foodOnSnake = false;
while(rightLocation === false) {
randomX = Math.floor(Math.random() * (this.game.width/squareSize)) * squareSize;
randomY = Math.floor(Math.random() * (this.game.height/squareSize)) * squareSize;
foodOnSnake = false;
for (var i = 0; i < snake.length; i++) {
if (snake[i].x === food.x && snake[i].y === food.y) {
foodOnSnake = true;
break;
}
}
if(foodOnSnake === false) {
rightLocation = true;
}
}
food = this.game.add.sprite(randomX, randomY, 'snake', 15);
}
L'objectif, est de créer des coordonnées aléatoires sur le jeu. Et, tandis que la nourriture est générée sur une partie du serpent (la boucle for), je vais générer d'autres coordonnées. Mais pour une raison inconnue, après que mon serpent est mangé le premier repas, le jeu s'est écrasé et l'onglet de Google Chrome ne répond pas. Je pense qu'il y a une erreur avec une boucle mais je ne la trouve pas.
Vous avez un certain nombre d'objets/variables non déclarés. –
ajouter plus de définitions, en particulier le serpent –
et ici vous exécutez n'importe ce que 'food = this.game.add.sprite (randomX, randomY, 'snake', 15);' - tant que le temps se termine .. –