[Résolu] Possibilité de mouvement avec case et obstacles - 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 : [Résolu] Possibilité de mouvement avec case et obstacles (/showthread.php?tid=2501) |
RE: possibilité de mouvement, avec case, et obstacles. - uriak - 28-02-2008 Cela dit tout comme Roworll l'a dit j'ai mis le frein sur le pathfinding. Pour le moment mes échanges se font avec une portée de 1 (quoi qu'une portée de 2 pourrait être codée facilement en dur) Je vais sans doute le reprendre dans mon éditeur de monde, pour calculer des graphes de connectivité en dur (la notion de blocage ou pas sera ne variera pas) mais pour des obstacles mobiles, on ne peut pas y couper. Sinon pour les tirs, il est de loin plus facile de tester une ligne droite à l'entrée dans une zone que de vérifier toute la zone. Mais si tu dois indiquer les portées pour information, et que les éléments ne se déplacent pas trop trop souvent, alors faire cette recherche a un sens. RE: possibilité de mouvement, avec case, et obstacles. - Ludvig - 29-02-2008 Ce qu'il te faut c'est l'algorithme de Dijkstra. Ou la première partie : calculer tout les couts à partir d'une case (avec un max de 10 par exemple). Après t'as les cases où tu peut aller (avec leur cout). J'ai ça dans mon jeu et ça marche plutôt bien, enfin c'est un algo n² alors faut pas calculer des distances longues. /Ludvig RE: possibilité de mouvement, avec case, et obstacles. - Argorate - 29-02-2008 un algo n²? oui j'ai pensé faire un truc comme ça: je part de mon perso, je prend les case autour et je leur donne pour valeur 1, puis je prend celle autour n'ayant ni un chiffre ni étant la case de depart et je met un 2 etc jusqu'a arrivé a 10, ça peut etre bien? RE: possibilité de mouvement, avec case, et obstacles. - Ludvig - 29-02-2008 C'est exactement cela ! Facile & rapide Attention juste si tu veut un jour mettre des couts différents selon la case traversés (route=1, boue=3, foret=6 etc) alors là il faut faire les calcules dans l'ordre : On commence avec la case de début dans une liste et tant que la liste est pas vide : on sors le plus petite valeur et on regarde autour si (comme t'as dit) ils ont pas un chiffre OU que le chiffre est plus grand (on a trouve un autre chemin plus longue mais au moindre cout) alors on insère la nouvelle case dans la liste (dans le bonne position) et on continue. Enfin l'aglo dijkstra quoi sinon un O=n² c'est un algo qui coute (en temps d'exécution "CPU") beaucoup plus pour une grande valeur (ici la vue) que pour une petite (enfin simplement dit). Dans ton jeu, si on compare une vue de 10 avec une vue de 20 on a potentiellement 441 cases pour le premier et 1681 pour le deuxième malgré le fait que le deuxième vue n'est que deux fois plus grand. /Lud RE: possibilité de mouvement, avec case, et obstacles. - Argorate - 29-02-2008 ok j'ai compris, je vais esseyer de coder ça, je vous tien au courant, merci bien. RE: possibilité de mouvement, avec case, et obstacles. - genosite - 01-03-2008 Tien un algo que j'ai fait pour un jeu Tu doit l'améliorer. Attention il est en javascript. Code : this.case_action = function() champ_action = le nb de case ou il peut se déplacer. RE: possibilité de mouvement, avec case, et obstacles. - Argorate - 01-03-2008 cette algo ne marche pas, les divisions donne des coordonnées a virgule.. sans compter le +2 qui se balade "case_adj += (1+1)+..." je comprend pas bien se que sa doit faire. RE: possibilité de mouvement, avec case, et obstacles. - genosite - 01-03-2008 le 1+1 sert pour initialiser ma map. sinon pour les valeur a virgule je les enlève apres dans la génération de la map. RE: possibilité de mouvement, avec case, et obstacles. - Argorate - 01-03-2008 le probleme c'est que sa donne pas du tout se que je veux ^^ bref, je suis sur un putain de code et j'arrive pas vraiment a m'en sortir là... 300 ligne de JS -_-' RE: possibilité de mouvement, avec case, et obstacles. - genosite - 01-03-2008 300 lignes c'est que le debut. dans pas longtemps tu va toucher les 1000 lignes. |