J'avais déjà essayé avec des div et de superposer tout ça, mais bon... ça ne m'a pas plu. Je testerais éventuellement un chargement avec microtime() comme cité plus haut.
Au niveau des requettes j'ai donc une demande de position du joueur qui cherche à afficher la carte:
SELECT x,y FROM players WHERE id='id_du_joueur'
une autre requette pour connaître le nombre de messages sous forme de count:
SELECT count(*) AS nb FROM messages WHERE destinataire='id_du_joueur'
Ensuite deux images générées, la premiére re-demande une position:
SELECT x,y FROM players WHERE id='id_du_joueur'
Puis les objets environnants ( forets, maisons, rivieres, routes... ):
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Suivie d'une requette cherchant tout joueur dans les parages:
SELECT race,classe,x,y FROM players WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue' AND etat!='mort'
La deuxieme image génére donc l'entourage du joueur en pixels:
SELECT x,y FROM players WHERE id='id_du_joueur'
Puis les objets environnants ( forets, maisons, rivieres, routes... ):
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Voilà pour mes requettes au nombre de 7. J'avais pensé passer la position du joueur en sessions pour supprimer les deux requettes. Et le reste je ne sais pas encore si je peux l'optimiser plus. Merci à tous pour vos réponses
PS: l'image en cache ne serait pas plus lourde ? sachant qu'il faudrait vérifier à chaque fois si l'image a bougé, qu'il faut la remettre en cache à chaque fois et que se déplacer est l'une des choses que l'on fait souvent dans mon jeu ( de bourrins faut dire ). Sinon, comment le mettre en place ? Je ne me suis jamais posé la question.
[édit]: aprés essai, ma page s'affiche aux alentours de 0.5 secondes si je le mets dans une boucle s'effectuant 100 fois de suite, 0.03 pour une seule fois. Au bout de 500 fois la page ne s'affiche plus, mais déjà arriver à 100 joueurs actifs et d'un coup me parait peu probable . C'est assez bien ou faut-il encore améliorer des choses ? sachant que j'ai mis le moins d'espace possible entre les connexions mysql et que j'ai enlevé les deux autres quêtes en utilisant les sessions.
Au niveau des requettes j'ai donc une demande de position du joueur qui cherche à afficher la carte:
SELECT x,y FROM players WHERE id='id_du_joueur'
une autre requette pour connaître le nombre de messages sous forme de count:
SELECT count(*) AS nb FROM messages WHERE destinataire='id_du_joueur'
Ensuite deux images générées, la premiére re-demande une position:
SELECT x,y FROM players WHERE id='id_du_joueur'
Puis les objets environnants ( forets, maisons, rivieres, routes... ):
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Suivie d'une requette cherchant tout joueur dans les parages:
SELECT race,classe,x,y FROM players WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue' AND etat!='mort'
La deuxieme image génére donc l'entourage du joueur en pixels:
SELECT x,y FROM players WHERE id='id_du_joueur'
Puis les objets environnants ( forets, maisons, rivieres, routes... ):
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Voilà pour mes requettes au nombre de 7. J'avais pensé passer la position du joueur en sessions pour supprimer les deux requettes. Et le reste je ne sais pas encore si je peux l'optimiser plus. Merci à tous pour vos réponses
PS: l'image en cache ne serait pas plus lourde ? sachant qu'il faudrait vérifier à chaque fois si l'image a bougé, qu'il faut la remettre en cache à chaque fois et que se déplacer est l'une des choses que l'on fait souvent dans mon jeu ( de bourrins faut dire ). Sinon, comment le mettre en place ? Je ne me suis jamais posé la question.
[édit]: aprés essai, ma page s'affiche aux alentours de 0.5 secondes si je le mets dans une boucle s'effectuant 100 fois de suite, 0.03 pour une seule fois. Au bout de 500 fois la page ne s'affiche plus, mais déjà arriver à 100 joueurs actifs et d'un coup me parait peu probable . C'est assez bien ou faut-il encore améliorer des choses ? sachant que j'ai mis le moins d'espace possible entre les connexions mysql et que j'ai enlevé les deux autres quêtes en utilisant les sessions.