| [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) | |
|
|
|
Auteur | Message |
---|
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Mer 6 Nov 2013 - 10:26 | |
| TheBitPriest est en train de regarder plus en détail le code source du pathfinder. Il est d'accord avec mes conclusions : le problème viens du " old pathfinder" et pas de Djikstra, qui sait parfaitement résoudre ce genre de situations (mais qui n'est pas appelé dans les mouvements en ligne droites, pour des raisons de déplacements aux claviers d'après les commentaires du code). Il fait judicieusement remarquer que le " old pathdinder" ne fonctionne pas si mal, mais qu'il a un problème avec les cul-de-sacs, et qu'il y en a un petit dans la WalkableArea de valoulef : (l'image est de lui) Lorsque ce petit cul-de-sac d'un pixel est comblé, le "old pathfinder" fonctionne correctement et conduit au bon chemin. Sinon, j'ai remarqué qu'il existai déjà un module nommé " 8-Direction Movement". Il faut que je regarde plus en détail ce qu'il fait, mais il a l'air vieux et plus adapté pour les mouvements au claviers. Je pense donc renommer ce module IsoWalk pour le poster sur le forum anglophone afin d'éviter toute confusion. Je rajouterai aussi une propriété IsoMoving qui fonctionnera comme le Moving mais qui fonctionnera avec ce module. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Mer 6 Nov 2013 - 12:05 | |
| - Billbis a écrit:
- TheBitPriest est en train de regarder plus en détail le code source du pathfinder.
Cool, je m'disais bien que quelqu'un finirait par regarder ce bug de plus près sur le forum anglophone Je rajouterai cette partie de l'explication que donne TheBitPriest : l' ancien pathfinder se déplace en "lignes droites". Lorsqu'il se trouve dans un cul-de-sac, sa réaction est de revenir sur ses pas. Voici ce qui se passe dans notre cas (j'extrapole un peu, il est donc possible que certaines étapes fonctionnent différemment) : - Il y a un clic hors de la zone de déplacement, AGS trouve le point le plus proche dans la zone de déplacement : c'est le coin inférieur gauche.
- Depuis la position initiale du personnage, l'ancien pathfinder calcule une ligne droite vers le point d'arrivée (le coin inférieur gauche).
- L'ancien pathfinder déplace dans un premier temps le personnage selon cette ligne droite vers le point d'arrivée, mais rencontre alors un cul-de-sac (le pixel pointé dans la capture d'écran de TheBitPriest).
- De là, le pathfinder fait "marche arrière" jusqu'à trouver un point depuis lequel il pourra se déplacer en ligne droite jusqu'au point d'arrivée, c'est-à-dire qu'il déplace le personnage vers la droite jusqu'à trouver un point à partir duquel on pourra arriver à destination en ligne droite.
- Une fois ce point atteint (qui se situe vers la droite de la zone de déplacement), le personnage se déplace en ligne droite vers le point d'arrivée, en bas à gauche de la zone de déplacement.
Petit éclaircissement sur cette remarque de Billbis que je n'avais pas comprise à la première lecture : - Billbis a écrit:
- Lorsque ce petit cul-de-sac d'un pixel est comblé, le "old pathfinder" fonctionne correctement et conduit au bon chemin.
Par "comblé" il faut comprendre qu'on modifie la zone de déplacement de façon à faire disparaître le cul-de-sac (c'est-à-dire qu'il ne faut pas comprendre "comblé" comme "exploré par le pathfinder", comme je l'avais fait à la première lecture). Il faudra que je regarde à nouveau nos tests de variation de 3 pixels pour voir si tout s'explique bien. - Billbis a écrit:
- Je rajouterai aussi une propriété IsoMoving qui fonctionnera comme le Moving mais qui fonctionnera avec ce module.
Il y aura une différence entre IsoMoving et Moving ? Cela a-t-il à voir avec le cycle de jeu durant lequel le personnage se trouve entre deux lignes droites (et où il ne bouge donc pas durant un très court instant). |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Lun 16 Déc 2013 - 17:06 | |
| _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Mer 18 Déc 2013 - 10:05 | |
| Oui, j'avais vu ça. Il faut vraiment que je trouve le temps et le courage de revenir sur ce module. J'ai déjà mis en place le changement de nom (U8D_walk() devient IsoWalk() ). - Kitai a écrit:
- Il y aura une différence entre IsoMoving et Moving ? Cela a-t-il à voir avec le cycle de jeu durant lequel le personnage se trouve entre deux lignes droites (et où il ne bouge donc pas durant un très court instant).
Oui tout à fait. Mais selon mes tests, tant que le Moving est dans un fichier script sous le module (ou dans un fichier de scipt de room), Moving restera vrai jusqu’à la fin du mouvement. Et comme on ne peut pas rajouter d'attribut sur des structures prédéfinit, il n'y aura finalement pas d'IsoMoving, mais ça ne posera pas trop de problème. En revanche, j'ai remarqué que pour l'instant seul un seul personnage peu faire un IsoWalk non bloquant à la fois. Je vais essayer de corriger ça, mais ça risque de me prendre un peu de temps et une ou deux boite de doliprane. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Mer 18 Déc 2013 - 13:24 | |
| - Billbis a écrit:
- En revanche, j'ai remarqué que pour l'instant seul un seul personnage peu faire un IsoWalk non bloquant à la fois. Je vais essayer de corriger ça, mais ça risque de me prendre un peu de temps et une ou deux boite de doliprane.
Bon courage _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Mar 4 Mar 2014 - 21:51 | |
| J'ai enfin mis à jour ce module, avec de nombreux mois de retard. Vous pouvez la télécharger la nouvelle version ici (~5ko). Au menu du jour :-Changement de nom de U8D vers IsoWalk (pour éviter toute confusion avec ce module) (désolé pour la rétrocompatibilité Utilisez les fonctions Rechercher -> Remplacer de l'éditeur). -Intégration du petit hack pour forcer AGS à utiliser Djikstra. -Le module permet maintenant à plusieurs personnages de faire des IsoWalk simultanément de façon non bloquante (non testé, mais ça devrait marcher - c'est le cas de le dire ). Comme d'habitude, premier post mis à jour. |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Jeu 22 Mai 2014 - 19:58 | |
| Petite mise à jour 1.1, pour encapsuler quelques variables optionnelles. Parce que. Utilisation : - Code:
-
// fonction principale cEgo.IsoWalk(100, 100); cEgo.IsoWalk(100, 100, eBlock, eAnywhere);
// pour désactiver le module ( IsoWalk se comportera comme un walk normal), utile pour faire une option. IsoWalkModule.ModuleON = false;
// distance minium en pixel pour que le module soit actif (20 par défaut). En dessous, un walk normal est appelé. IsoWalkModule.MinDistance = 100;
// change l'ordre de priorité des points de passages P1 et P2. // vrai : la diagonal en premier (faux par défaut). IsoWalkModule.UseAlternateHorizontalPath = true; IsoWalkModule.UseAlternateVerticalPath = true; Désolé pour la rétrocompatibilité. Premier post mis à jour. Bientôt disponible à l'internationale. Sinon, Gurok viens de rejoindre theBitPriest dans la résolution du fameux bug découvert dans le pathfinder. Je le dit, je le répète, tout espoir n'est pas perdu. Bientôt la disparition des "+3" ! |
|
| |
filoulefilou Cliqueur Amateur
Nombre de messages : 359
Date d'inscription : 24/05/2010
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Jeu 25 Avr 2019 - 9:47 | |
| J'étais curieux de regarder un peu comment fonctionnait ce module, quelqu'un aurait une copie ? Le lien est mort. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Jeu 25 Avr 2019 - 14:26 | |
| _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
filoulefilou Cliqueur Amateur
Nombre de messages : 359
Date d'inscription : 24/05/2010
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Ven 6 Mar 2020 - 17:18 | |
| Petit bug a noter, IsoWalk fait crasher si l'on change de Player avec la fonction Character.SetAsPlayer() alors qu'on est entrain de marcher, et que le nouveau player se trouve dans une Room différente. Ca peut paraître absurde de se déplacer et de changer de player actif, mais imaginez que vous codez un objet dans une room, une interaction avec cet objet détermine le changement de SetAsPlayer... Dans ce cas là, si votre personnage doit marcher jusqu'a cet objet pour le déclencher, c'est justement dans cette configuration que le bug se produit.
Tout simplement parceque le dans le code IsoWalk, lorsque la fonction est lancée, elle calcule la distance entre player.x et la destination et détermine des Waypoints, et donc si le player n'a pas terminé son trajet en mémoire, mais qu'on lui demande de changer de Character référent et de Room .... ALORS BADABOUM !
Logique non ?
Pensez-y. |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) Dim 15 Mar 2020 - 9:21 | |
| Pardon (^__^)'
(en toute franchise, je ne pense pas corriger ce bug pour l'instant, donc si quelqu'un veut proposer sa version patché, qu'il le fasse maintenant et que ça reste à jamais). |
|
| |
Contenu sponsorisé
| Sujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) | |
| |
|
| |
| [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) | |
|