Bonjour !
Je ne tournerai pas autour du pot : Je n'ai aucune idée du "comment faire" de la chose... Il est vrai que tu ne peux pas updater ta table pour tous tes joueurs à toutes les secondes, et si tu le fais à toutes les heures, tu perds ta notion de "temps réel"... Voici donc néanmoins comment j'aborderais le problème... (À noter qu'il est 9h00 du matin ici, que je n'ai toujours pas pris mon premier café et que, comme je le disais, je n'ai aucune idée de la manière de résoudre ce problème... En bref, ce que j'écris ici est peut-être complètement n'importe quoi ! )
À supposé qu'on ne peut se déplacer que d'un nombre limité de cases sans se reconnecté. Bref, je suis sur X-65 et Y-35, je peux demander de me déplacer dans un rayon de 25 cases, pour un total de 25 heures, après quoi je dois me reconnecté pour redemander de me déplacer. Bref, c'est déjà ça, on n'a plus qu'à demander l'actualisation des données des joueurs se trouvant dans un rayon de 50 cases (25 * 2, car si je suis à l'extrême gauche et qu'un joueur, à l'extrême droite, demande aussi, comme moi, un déplacement de 25 cases, on se retrouvera au centre au même moment...) pour chaque déplacement. Je dis l'actualisation, mais en fait, ce n'est pas obliger. On va simplement chercher leurs données, point.
Lorsque le joueur live demande son déplacement, on vérifie dans la base de données tous les joueurs étant dans ledit rayon de 50 cases, on prend leurs coordonnées de base, leur coordonnées d'arrivées, l'heure de lancement du déplacement et le temps actuel. On calcul leur vecteur de déplacement (À supposé qu'ils se déplacent toujours en ligne droite...), et en fonction de l'heure actuelle, on peut déterminer à quelle position chacun des joueurs se trouve en ce moment précis. Ça revient en fait à une simple requête avec un mysql_fetch_row pour chacun des joueurs dans ledit rayon, simplement, en plus, bien sûr, du calcul des différents vecteurs.
Ça a du sens ?
Je vais prendre mon café et je me relis ensuite !
Je ne tournerai pas autour du pot : Je n'ai aucune idée du "comment faire" de la chose... Il est vrai que tu ne peux pas updater ta table pour tous tes joueurs à toutes les secondes, et si tu le fais à toutes les heures, tu perds ta notion de "temps réel"... Voici donc néanmoins comment j'aborderais le problème... (À noter qu'il est 9h00 du matin ici, que je n'ai toujours pas pris mon premier café et que, comme je le disais, je n'ai aucune idée de la manière de résoudre ce problème... En bref, ce que j'écris ici est peut-être complètement n'importe quoi ! )
À supposé qu'on ne peut se déplacer que d'un nombre limité de cases sans se reconnecté. Bref, je suis sur X-65 et Y-35, je peux demander de me déplacer dans un rayon de 25 cases, pour un total de 25 heures, après quoi je dois me reconnecté pour redemander de me déplacer. Bref, c'est déjà ça, on n'a plus qu'à demander l'actualisation des données des joueurs se trouvant dans un rayon de 50 cases (25 * 2, car si je suis à l'extrême gauche et qu'un joueur, à l'extrême droite, demande aussi, comme moi, un déplacement de 25 cases, on se retrouvera au centre au même moment...) pour chaque déplacement. Je dis l'actualisation, mais en fait, ce n'est pas obliger. On va simplement chercher leurs données, point.
Lorsque le joueur live demande son déplacement, on vérifie dans la base de données tous les joueurs étant dans ledit rayon de 50 cases, on prend leurs coordonnées de base, leur coordonnées d'arrivées, l'heure de lancement du déplacement et le temps actuel. On calcul leur vecteur de déplacement (À supposé qu'ils se déplacent toujours en ligne droite...), et en fonction de l'heure actuelle, on peut déterminer à quelle position chacun des joueurs se trouve en ce moment précis. Ça revient en fait à une simple requête avec un mysql_fetch_row pour chacun des joueurs dans ledit rayon, simplement, en plus, bien sûr, du calcul des différents vecteurs.
Ça a du sens ?
Je vais prendre mon café et je me relis ensuite !