Pour l'erreur je sais, j'ai firebug aussi, je m'en occupe plus tard.
Pour se déplacer, il suffit de cliquer sur une case
L'idée pour alléger la carte, serait de charger une fois les images du terrain (sol + bâtiments) une fois a la connexion du joueur, et ensuite ne rafraichir que les joueurs, PNJ et autre.
Mais dans la pratique un peu plus dur à trouver le truc à faire.
Edit : j'ai supprimé pas mal de choses de la map, si c'est moche c'est normal^^
Bon après plusieurs test, c'est l'ajax qui fait ramer le déplacement. Même avec rien sur la map ça lag.
Vous savez comment optimiser un script ajax ?
Donc pour ma part, quand on clique sur une case, on lance la fonction move, qui récupère les coordonnées de la case, l'envoie sur la page deplacement.php qui fait sa petite requête, puis ensuite la div contenant la map se refresh...rien de bien lourd j'ia l'impression.
Voici le script ajax :
Si vous voyez le petit truc qui fait tout ramer, merci de me le dire.
Pour se déplacer, il suffit de cliquer sur une case
L'idée pour alléger la carte, serait de charger une fois les images du terrain (sol + bâtiments) une fois a la connexion du joueur, et ensuite ne rafraichir que les joueurs, PNJ et autre.
Mais dans la pratique un peu plus dur à trouver le truc à faire.
Edit : j'ai supprimé pas mal de choses de la map, si c'est moche c'est normal^^
Bon après plusieurs test, c'est l'ajax qui fait ramer le déplacement. Même avec rien sur la map ça lag.
Vous savez comment optimiser un script ajax ?
Donc pour ma part, quand on clique sur une case, on lance la fonction move, qui récupère les coordonnées de la case, l'envoie sur la page deplacement.php qui fait sa petite requête, puis ensuite la div contenant la map se refresh...rien de bien lourd j'ia l'impression.
Voici le script ajax :
Code :
<script language="javascript" type="text/javascript">
var xhr = null;
// CREE UN ELEMENT XMLHttpRequest
function get_Xhr()
{
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXOject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(el)
{
xhr = null;
}
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest\nVeuillez le mettre à jour");
}
return xhr;
}
// Charge un fichier dans un div
function LoadDiv(div,file){
get_Xhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById(div).innerHTML = xhr.responseText;
}
}
xhr.open("POST",file,true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("type="+div);
}
// Deplacement d'un perso. sur la carte
function move(x,y)
{
// Creation de l'objet XMLHttpRequest
get_Xhr();
xhr.onreadystatechange = function()
{
// Reponse du script
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
LoadDiv("carte","affichage_map.php");
}
}
// Nous allons interroger deplacement.php pour effectuer le deplacement
xhr.open("POST",'deplacement.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("x="+x+"&y="+y);
}
</script>
Si vous voyez le petit truc qui fait tout ramer, merci de me le dire.