Changement de map en map 'Javascript'

Bonjour,

je suis en train de créer un jeu pokemon online.
j'ai fait des map pour mon jeu .
il s'agit d'une aventure et je voudrai me deplacer sur plusieurs map en cliquan sur une zone delimiter.

Mercii de me donner le srcipt javscript et la programmation de la map avec :
<area shape="rect" coords="306,315,344,329" href="le truc en javascript " ;" />
Configuration: Windows Vista Internet Explorer 7.0


Mercii beaucoup de m'aider

27 réponses

Résumé de la discussion

Plusieurs éléments convergent sur la problématique centrale : remplacer dynamiquement une carte affichée par une autre lorsque une zone délimitée est cliquée, tout en conservant l'interface comme le menu et la date. Des propositions visent à isoler les cartes dans des fichiers PHP distincts via des includes ou à utiliser JavaScript pour charger et remplacer l'image de la carte sans perturber le menu. La discussion met aussi en avant le besoin d'une variable map2 correctement déclarée et des détails d'implémentation comme les zones image map, l'attribut usemap et la cohérence des contenus affichés.

Bobot (l’IA à votre service)
  1. dans le href, tu met l'adresse de la nouvelle map ...
    0
    1. il me le mets mais pas le reste du site que la map avec le lien dans la map dans la barre de lien

      que faire ?
      0
      1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
        <html xmlns="http://www.w3.org/1999/xhtml"> 
        <html> 
        <head> 
        <title>Arene </title> 
        
        <SCRIPT LANGUAGE="JavaScript">
        /* <![CDATA[ */
        function change_map(ToMap)
        {
        	var xhr_object = null;
        	var filename = "xmlhttprequest.php?act=3";
        	var data = null;
        	var data_map = ToMap;
        	if(window.XMLHttpRequest) // Firefox
        	   xhr_object = new XMLHttpRequest();
        	else if(window.ActiveXObject) // Internet Explorer
        	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
        	else {
        	// XMLHttpRequest non supporté par le navigateur
        		alert('Ton navigateur ne supporte pas XMLHttpRequest\n\rMet le à jour !');
        	    return;
        	}
        	if( data_map != "map2.png" )
        	{
        		data_map = data_map.replace(/\+/g, '%2B');
        		data = "data_map=" + data_map;
        		xhr_object.onreadystatechange = function()
        		{
        			if( xhr_object.readyState < 4 && xhr_object.readyState > 0 ) {
        				document.getElementById("curseur").style.visibility="hidden";
        				document.getElementById("the_map").innerHTML = '<img alt="" src="images/map/map1.png" style="border:2px blue solid;" />';
        				document.getElementById("info_map").innerHTML = '';
        			}
        			else if( xhr_object.readyState == 1 )
        			{
        				var result_map = xhr_object.responseText.split(';');
        				document.getElementById("curseur").style.visibility="hidden";
        				document.getElementById("top_map").innerHTML = 'Vous êtes à <b>'+result_map2+'<\/b>.<br /><br />';
        				document.getElementById("the_map").innerHTML = '<img id=" alt="'+result_map2+'" style="border:2px blue solid;" usemap="'+result_map1+'" />';
        				var result_64 = base64_decode(result_map1);
        				document.getElementById("info_map").innerHTML = result_64;
        				window.location.href = 'images/map/'+result_map1;
        			}
        		}
        		xhr_object.open("POST", filename, true);
        		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        		xhr_object.send(data);
        	}
        	else
        	{
        		alert("Erreur !");
        	}
        }
        /* ]]> */
        </SCRIPT>
        <body style="background-image: url(images/fond.png);"> 
                <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> 
                <p align="center">
                        <img src="images/pokeball.png"/>
                        <a href="accueil.php"> Accueil </a>
                        <img src="images/pokeball.png"/>
                        <a href="arene.php"> Combattre ! </a>
                        <img src="images/pokeball.png"/>
                        <a href="legende.php"> a propos du jeu </a>
                        <img src="images/pokeball.png"/>
         
        <?php
         
        $jour = date("d");
        $mois = date("m");
        $annee = date("Y");
         
        $heure = date("H");
        $minute = date("i");
         
        echo  "<p align=\"center\">Nous sommes le $jour/$mois/$annee et il est $heure h $minute. " ; echo ' <br /> <br /> <br /> ' ;
         
        echo ' <p align="center" style="color:red"><b><h1>Poké-<i>city</h1></i></b></p> ' ; echo ' <br /> ' ;
         
         
         
         
         
         
        echo ' <div align="center"></p><img src="images/map/map1.png" usemap="#map1">
        <map name="map1"> 
        
        <area shape="rect" coords="367,113,492,187" href="laboratoire.php">
        
        <area shape="rect" coords="94,31,211,123" href="arene.php" />
         
        <area shape="rect" coords="238,39,318,123" href="centre.php" />
         
        <area shape="rect" coords="362,236,434,306" href="boutique.php" />
         
        <area shape="rect" coords="499,60,666,124" href="sauvage.php" />
         
        <area shape="rect" coords="236,175,303,248" href="compte.php" />
         
        <area shape="rect" coords="24,110,167,327" href="peche.php" />
         
        <area shape="rect" coords="491,252,556,327" href="peche.php" />
         
         
        <area shape="rect" coords="306,315,344,329" href="javascript:change_map(map2);" ;" />
        
        </map></div> <br /> ' ;
        
        
         
        echo ' <div align="center" style="color:blue"><h1><b>Arêne</b></h1></div> <br />' ; 
        
         
        ?>
        </html>
        

        et avec sa pourquoi sa ne me change pas ?
        0
        1. Contributeur
          bonjour :)

          alors, si j'ai bien compris ton probleme.. tu à un site avec des menus et tout et un labyrinthe au milieu.. et tu voudrais qu'en cliquant sur le choix d'un laby, ca te l'affiche (toujours au milieu)..
          c'est ca ?
          0
          1. ta 2 map
            ex :t'es sur la 1er tu clik sur un lien delimiter avec les balises "area shape coords href " et tu clik sa taffiche la 2 eme sans changer de page

            *tu es sur arene.php avec la map 1 afficher tu clik sur la zone delimiter et sa te mets sur arene.php avec la 2eme map en gardant le dign les liens ect ...

            Mercii d'avance
            0
            1. Contributeur
              Ok, donc je pense que c'est la conception de ton site qui merdouille...(désolé :p )

              Actuellement.. tel quel.. il t'affiche ton site (menu, bande date, ..) avec les maps à choisir c'est ca ??
              Et quand tu click sur une de tes maps, il te l affiche, mais sans les menu, date ect, j'ai bien pigé?
              0
              1. no c'est juste la map qui change
                0
                1. Contributeur
                  ok, donc je réitere...

                  Actuellement.. tel quel.. il t'affiche ton site (menu, bande date, ..) la map 'arene'??
                  Et quand tu click pour changer de map, il te l affiche(la nouvelle map choisie), mais sans les menu, date ect, c'est ca...

                  Ps : si je pose 2 questions, j'aimerais au moins 2 réponses.. à la rigueur, recopie la question pour savoir à laquelle tu me répond.. :)
                  0
                  1. Actuellement.. tel quel.. il t'affiche ton site (menu, bande date, ..) la map 'arene'?? arene est une page sinon les map sapelle map 1 et map 2

                    Et quand tu click pour changer de map, il te l affiche(la nouvelle map choisie), mais sans les menu, date ect, c'est ca...
                    non avec tout le site avec la page arene
                    0
                    1. Contributeur
                      ok.. une derniere chose.. j avoue que je comprend pas toute l'organisation de ton code, mais :

                      <area shape="rect" coords="306,315,344,329" href="javascript:change_map(map2);" ;" />

                      map2 c'est quoi??
                      - une variable (js) contenant qlqchose.. dans ce cas, c'est pas déclarer,
                      - une variable de php .. pas déclarer non plus, et il manquerais un $
                      - du texte.. dans ce cas il manque des guillemets..
                      0
                      1. map2 est la 2eme map

                        tu comprends toujours pas ?

                        j'ai 2 map
                        je suis sur mon site elle est afficher programmer et je voudrai quand je clik sur la partie delimitée que map1 sois remplacer par map2
                        0
                        1. Contributeur
                          on y arrive ;)

                          moi je rechargerais la page avec un $_GET... alors :

                          dans un fichier map1.php:

                          echo ' <div align="center"></p><img src="images/map/map1.png" usemap="#map1">
                          <map name="map1">

                          <area shape="rect" coords="367,113,492,187" href="laboratoire.php">

                          <area shape="rect" coords="94,31,211,123" href="arene.php" />

                          <area shape="rect" coords="238,39,318,123" href="centre.php" />

                          <area shape="rect" coords="362,236,434,306" href="boutique.php" />

                          <area shape="rect" coords="499,60,666,124" href="sauvage.php" />

                          <area shape="rect" coords="236,175,303,248" href="compte.php" />

                          <area shape="rect" coords="24,110,167,327" href="peche.php" />

                          <area shape="rect" coords="491,252,556,327" href="peche.php" />

                          <area shape="rect" coords="306,315,344,329" href="?map=2" ;" />

                          </map></div> <br /> ' ;

                          dans map2.php, ta map2

                          et ptit changement dans ton code principale :

                          echo ' <p align="center" style="color:red"><b><h1>Poké-<i>city</h1></i></b></p> ' ; echo ' <br /> ' ;

                          $PageACharger="map1.php";
                          if (isset ($_GET['map'])){
                          $PageACharger= "map".$_GET['map'].".php";
                          }

                          include("$PageACharger");

                          0
                          1. le meme sauf le lien qui change :arene.php?map=2
                            0
                            1. Contributeur
                              oui, en map=3 pour passer de map2 à 3.. ect...

                              du coup, plus besoin de ton js ;)
                              0
                              1. Contributeur
                                as tu bien copier toutes tes lignes de map1 dans map1.php, map2 dans map2.php ?

                                Petite précision, il faut que ces fichiers soit dans le meme répertoire que le fichier appelant (en général la racine.. ou alors, tu cré un rep 'map' et :

                                $PageACharger="map/map1.php";
                                if (isset ($_GET['map'])){
                                $PageACharger= "map/map".$_GET['map'].".php";
                                }
                                0
                                1. map1.php et map2.php sont des liens mais je veux des maps moi
                                  0
                                  1. Contributeur
                                    oui, justement.. tu met le code de chaque map dans chacuns des fichiers

                                    et le code se chargera en fonction du $_GET[].. si aucun $_GET n existe, il charge la map1
                                    0
                                    • 1
                                    • 2