Spawn des villages sur une carte - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Spawn des villages sur une carte (/showthread.php?tid=5001) |
Spawn des villages sur une carte - Colmea - 21-07-2010 Bonsoir, Je viens demander vos conseils quant à l'algo pour le spawn d'un village sur une carte lors de sa création. Le problème est simple: _ les villages doivent se développer en cercle autour de la capitale principale du jeu (qui se trouve en 0;0). _Chaque village doit être espacé d'au moins deux cases par rapport aux autres. J'avoue j'ai un peu de mal à mettre en place la formule pour générer les coordonnées du nouveau village. C'est surtout cette idée de développement en cercle qui me pose problème. Si quelqu'un peut m'aiguiller, ce ne serait vraiment pas de refus Bonne soirée RE: Spawn des villages sur une carte - php_addict - 21-07-2010 bon alors: ta capitale = centre , origine de ton repère x,y tu défini un écart type, exemple 4 cases tes premiers villages seront sur le cercle ayant pour rayon 4 cases tu espace tes villages sur la périphérie du cercle du même écart une fois que tu a fais le tour du premier cercle tu augmente ton rayon (2 * ton écart type) etc... après quand tu as trouver une coordonnée x,y et ben tu peut appliquer un peu d'aléatoire pour décaler ta coordonnée x,y histoire que cela ne soit pas trop symétrique... donc c'est des calculs de diamètres, rayon, arc de cercle, d'angles...ahhh sacré Pythagore ! j'ai du ressortir mes théorèmes de géométrie du collège dis moi si cela t'aide et surtout si tu y vois une amélioration possible qui pourrait m'être utile fais toi des dessins,..., tu sais comme au college RE: Spawn des villages sur une carte - Argorate - 21-07-2010 Tu as une zone limite autour de la capitale (tu parles d'un minimum égal a 2, mais as-tu un maximum)? Tu veux que ça se devellope dans "l'ordre" j'imagine? C'est a dire, près de la capitale au départ puis en séloignant? RE: Spawn des villages sur une carte - keke - 21-07-2010 Et si tu déployais en spirale ? Un modèle mathématique à la clé, et tu pourrais obtenir ta répartition. kéké RE: Spawn des villages sur une carte - Colmea - 21-07-2010 Merci pour vos réponses. php_addict > C'est une très bonne idée en effet. Je pense que c'est ce qu'il me faut. Argorate > Il n'y a pas de zone limite. Plus il y a de villages,plus la carte s'agrandit. Et oui c'est bien ça, les premiers villages se développent près de la capitale, puis en s'éloignant. Kéké > Pourquoi pas ! Mais je t'avoue que autant faire un cercle, ça peut aller, mais une spirale .. aucune idée ! EDIT: Seulement si j'opte pour la spirale, les villages risquent d'être de plus en plus éloignés entre eux. Or, ils doivent toujours être dans un écart de 3 à 5 cases plus ou moins) Je vais un peu approfondir ça, merci à vous RE: Spawn des villages sur une carte - php_addict - 21-07-2010 (21-07-2010, 10:46 AM)Colmea a écrit : php_addict > C'est une très bonne idée en effet. Je pense que c'est ce qu'il me faut. c'est les 1eres ligne de code que j'ai fait pour mon mmorpg, alors dit moi si tu y vois une amelioration posible, cela serait sympa happy coding RE: Spawn des villages sur une carte - keke - 21-07-2010 Certaines spirales tournent selon un pas régulier. http://fr.wikipedia.org/wiki/Spirale_d%27Archim%C3%A8de Si tu trace un trait qui coupe le point 0.0 de cette spirale, http://upload.wikimedia.org/wikipedia/commons/c/c5/Archimedean_spiral.svg le pas correspond à la distance qui sépare 2 intersections consécutive entre la spirale et ton trait. Bref, si ce pas est de la taille de 3 cases, alors tu peux situer tes points de manière régulière sur la spirale tout en respectant tes contraintes. (j'ai fais un petit dessin pour me faire comprendre ... j'ai mis des zones vertes sur la spirale précédement montrée ^^ Mais je comprendrais aussi que tu préfères une solution par cercle. kéké |