21-01-2014, 05:31 AM
Bonjour,
j'aurais besoin de vos avis/idées/conseils concernant le fait de rendre la map d'un jeu toroïdale (en forme de tore, ça veux dire que le nord est relié au sud et l'est à l'ouest).
Pour le moment sur ma V5.0 j'ai juste dis que quand on se déplace en -1 ça va de l'autre coté et vis versa. Ça marche donc simplement pour le mouvement.
Mais le problème est par exemple pour la gestion des relais.
Dans mon jeu, les relais conduisent l'énergie un peu comme des pilonnes électriques en partant du QG comme générateur. Je fais donc un appel récursif pour déterminer les relais reliés en regardant pour chaque relai s'il a un relai relié dans sa portée autour de lui.
Pour ce faire, je calcule la distance entre les deux relais [ MAX( ABS(x1 - x2), ABS(x1 - y2) ) ] de la comparaison en cours et je regarde si Distance <= Portée.
Logique donc, mais ça ne marche plus si on veux faire du toroïdale !
Ma Map fait 135*135 cases, donc si j'ai un relai en 2 ; 20 et un autre en 134 ; 20, il ne rempliront pas les conditions alors qu'ils devraient.
Une idée d'algorithme pour gérer ça?
Merci.
j'aurais besoin de vos avis/idées/conseils concernant le fait de rendre la map d'un jeu toroïdale (en forme de tore, ça veux dire que le nord est relié au sud et l'est à l'ouest).
Pour le moment sur ma V5.0 j'ai juste dis que quand on se déplace en -1 ça va de l'autre coté et vis versa. Ça marche donc simplement pour le mouvement.
Mais le problème est par exemple pour la gestion des relais.
Dans mon jeu, les relais conduisent l'énergie un peu comme des pilonnes électriques en partant du QG comme générateur. Je fais donc un appel récursif pour déterminer les relais reliés en regardant pour chaque relai s'il a un relai relié dans sa portée autour de lui.
Pour ce faire, je calcule la distance entre les deux relais [ MAX( ABS(x1 - x2), ABS(x1 - y2) ) ] de la comparaison en cours et je regarde si Distance <= Portée.
Logique donc, mais ça ne marche plus si on veux faire du toroïdale !
Ma Map fait 135*135 cases, donc si j'ai un relai en 2 ; 20 et un autre en 134 ; 20, il ne rempliront pas les conditions alors qu'ils devraient.
Une idée d'algorithme pour gérer ça?
Merci.
Dévotion, jeu multijoueur gratuit par navigateur de stratégie et de conquête
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)