CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème typeError : *** is undefined

FunkyNapalm
FunkyNapalm
Niveau 10
20 décembre 2017 à 21:56:45

Je crée un jeu tour par tour
Voici le setting.js :


// ---------- Initialisation du jeu ---------- //

var jeu = {}

jeu.nouveau = function () {
	console.log("Nouvelle Partie");

	var nbObstacles = parseInt(document.getElementById('nbObstacles').value);
	// Recuperation du nombre d'obstacles
	var nbArmes = parseInt(document.getElementById('nbArmes').value);
	// Recuperation du nombre d'armes

	jeu.map.generationMap();
	// Generation de la carte du jeu
	jeu.map.generationObstacles(nbObstacles);
	// Generation des obtacles
	jeu.map.generationArmes(nbArmes);
	// Generation des armes
	jeu.joueurs.generationJoueurs();
	// Generation des joueurs

	console.lg("Le joueur " + jeu.joueurs.tour + "commence. A l'attaque!");

	jeu.maj(); 
	// Mise à jour de la partie
}

// ---------- Mise à jour de la partie ---------- //

jeu.maj = function () {
	jeu.joueurs.info();
	// Mise à jour des informations 
	jeu.map.deplacements();
	// Deplacement des joueurs
};

Puis le map.js
(Et à partir de //-- Initialisation des deplacements --// mon plateau de jeu ne s'affiche plus, et j'ai :
typeError : jeu.map is undefined)
Je ne comprend pas pourquoi [[sticker:p/1lmc]][[sticker:p/1lmc]]


//---------- Initatialisation de la map ----------//

jeu.map = {};

jeu.map.generationMap = function () {

	document.getElementById('map').innerHTML = ""; 
	// Réinitialisation de la carte du jeu

	var elemMap = document.getElementById('map');

	for (var i = 0; i < 10; i++) {	
	// Generation d'une map 10/10	
		var row = document.createElement('div');
		$(row).attr("class", "row");
		$(elemMap).append(row);

		for (var j = 0; j < 10; j++) {
			var col = document.createElement('div');
			$(col).attr("class", "case");
			$(col).attr("data-x", j + 1);
			$(col).attr("data-y", i + 1);
			$(col).attr("type", "");
			$(col).attr("arme", "");

			$(row).append(col);
		}
	}
};

// ---------- Initialisation des obstacles ----------//

jeu.map.generationObstacles = function (nombre) {

	for (var i = 0; i < nombre; i++) {
		var x = Math.ceil(Math.random() * 10);
		// Generation d'un nombre entre 1 et 10
		var y = Math.ceil(Math.random() * 10);

		var obstacles = document.querySelector(".case[data-x='" + x + "'][data-y='" + y + "']");
		// Recuperation de la case

		if ($(obstacles).attr("type") === "") {
			// Si la case est vide
			$(obstacles).attr("type", "obstacles");
			// Definition du type obstacles
			$(obstacles).addClass("obstacles");
			// Attribution de la classe obstacles
		} else {
			i--;
			// Si la case n'est pas vide, on recommence l'iteration
		};
	}
}

// ---------- Initialisation des armes ---------- //

jeu.armes = {
	arme0: {
		nom: "Mains nues",
		degats: 10,
		class: "mains"
	},
	arme1: {
		nom: "Dague",
		degats: 15,
		class: "dague"
		},
	arme2: {
		nom: "Epée",
		degats: 20,
		class: "epee"
	},
	arme3: {
		nom: "sceptre",
		degats: 25,
		class: "sceptre"
	},
	arme4: {
		nom: "hache",
		degats: 30,
		class: "hache"
	},
}

// Apparition aleatoire des armes
jeu.map.generationArmes = function (nombre) {
	console.log(nombre + " arme(s) en jeux : ");

	for (var i = 0; i < nombre; i++) {
		var random = Math.ceil((Math.random() * 4) - 1);
		// Generation d'armes entre 1 et 4
		var x = Math.ceil(Math.random() * 10);
		// Generation d'un nombre entre 1 et 10
		var y = Math.ceil(Math.random() * 10);

		var arme = document.querySelector(".case[data-x='" + x + "'][data-y='" + y + "']");
		// Recuperation de la case

		if ($(arme).attr("type") === "") {
			// Si la case est vide
			$(arme).attr("type", "arme");
			// Definition du type d'armes
			$(arme).attr("arme", "arme" + (random + 1));
			// Definition de l'arme
			$(arme).addClass(jeu.armes['arme' + (random + 1)].class);
			// Definition de la class de l'arme
			console.log("- " + jeu.armes['arme' + random].nom + 
				"(" + jeu.armes['arme' + random].degats + "points)");

		} else {

			i--;
			// Si la case n'est pas vide, on recommence l'iteration
		};
	};
};

// ---------- Initialisation des deplacements ---------- //

jeu.map.deplacements = function () {

	var joueur = jeu.joueurs.tour;
	// Definition du joueur actif
	var x = parseInt(jeu.joueurs[joueur].coordX);
	var y = parseInt(jeu.joueurs[joueur].coordY);

	for (var i = 1; i < 4; i++) { // Deplacement à droite
		var elem = document.querySelector(".case[data-x='" + (x + i) + "'][data-y='" + y + "']");

		if (elem) { // Si on ne sort pas de la carte

			if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
				break; // Si la case est occupée on sort de la boucle

			} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
				// Si la case est vide on attribut la classe "deplacer"

				if ($(elem).attr("type") === "") {
					// Si la case est vide
					$(elem).attr("type", "deplacer");
					// On lui attribut le type "deplacer"

			} else if ($(elem).attr("type") === "arme") {
					// Si la case est une arme
					$(elem).attr("type", "deplacer+arme");
					// On definit le type deplacer+arme
			};
			$(elem).addClass("deplacer" + joueur);
			// On attribut la class deplacer
			elem.addEventListener('click', jeu.map.clickDeplace, false);
			// Evenement click pour les deplacements des joueurs
		}
	}
};

	for (var i = 1; i < 4; i++) { // Deplacement à gauche
		var elem = document.querySelector(".case[data-x='" + (x - i) + "'][data-y='" + y + "']");

		if (elem) { // Si on ne sort pas de la carte

			if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
				break; // Si la case est occupée on sort de la boucle

			} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
				// Si la case est vide on attribut la classe "deplacer"

				if ($(elem).attr("type") === "") {
					// Si la case est vide
				} $(elem).attr("type", "deplacer");
					// On lui attribut le type "deplacer"
			} else if ($(elem).attr("type") === "arme") {
					// Si la case est une arme
					$(elem).attr("type", "deplacer+arme");
					// On definit le type deplacer+arme
			};
			$(elem).addClass("deplacer" + joueur);
			// On attribut la class deplacer
			elem.addEventListener('click', jeu.map.clickDeplace, false);
			// Evenement click pour les deplacements des joueurs
		}
	};
};

	for (var i = 1; i < 4; i++) { // Deplacement en haut
		var elem = document.querySelector(".case[data-x='" + (x) + "'][data-y='" + (y + i) + "']");

		if (elem) { // Si on ne sort pas de la carte

			if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
				break; // Si la case est occupée on sort de la boucle

			} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
				// Si la case est vide on attribut la classe "deplacer"

				if ($(elem).attr("type") === "") {
					// Si la case est vide
				} $(elem).attr("type", "deplacer");
					// On lui attribut le type "deplacer"
			} else if ($(elem).attr("type") === "arme") {
					// Si la case est une arme
					$(elem).attr("type", "deplacer+arme");
					// On definit le type deplacer+arme
			};
			$(elem).addClass("deplacer" + joueur);
			// On attribut la class deplacer
			elem.addEventListener('click', jeu.map.clickDeplace, false);
			// Evenement click pour les deplacements des joueurs
		}
	};
};

	for (var i = 1; i < 4; i++) { // Deplacement en bas
		var elem = document.querySelector(".case[data-x='" + (x) + "'][data-y='" + (y - i) + "']");

		if (elem) { // Si on ne sort pas de la carte

			if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
				break; // Si la case est occupée on sort de la boucle

			} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
				// Si la case est vide on attribut la classe "deplacer"

				if ($(elem).attr("type") === "") {
					// Si la case est vide
				} $(elem).attr("type", "deplacer");
					// On lui attribut le type "deplacer"
			} else if ($(elem).attr("type") === "arme") {
					// Si la case est une arme
					$(elem).attr("type", "deplacer+arme");
					// On definit le type deplacer+arme
			};
			$(elem).addClass("deplacer" + joueur);
			// On attribut la class deplacer
			elem.addEventListener('click', jeu.map.clickDeplace, false);
			// Evenement click pour les deplacements des joueurs
		}
	};
};

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment