Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-47%
Le deal à ne pas rater :
SAMSUNG T7 Shield Bleu – SSD Externe 1 To à 89,99€
89.99 € 169.99 €
Voir le deal

 

 [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)

Aller en bas 
4 participants
Aller à la page : Précédent  1, 2, 3
AuteurMessage
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue



Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyMer 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 :
[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 RXMs1r2
(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.
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue



Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyMer 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) :
  1. 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.
  2. Depuis la position initiale du personnage, l'ancien pathfinder calcule une ligne droite vers le point d'arrivée (le coin inférieur gauche).
  3. 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).
  4. 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.
  5. 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).
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyLun 16 Déc 2013 - 17:06

Double post pour tenir la communauté francophone au jour : TheBitPriest a synthétisé le problème du pathfinding sur une page wiki.

_________________
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 !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyMer 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.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyMer 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 clin d'oeil

_________________
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 !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyMar 4 Mar 2014 - 21:51

J'ai enfin mis à jour ce module, avec de nombreux mois de retard.  rougit 
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é triste 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 grand sourire).

Comme d'habitude, premier post mis à jour.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyJeu 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é. confus
Premier post mis à jour.
Bientôt disponible à l'internationale. sourire

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" !

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyJeu 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.
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyJeu 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 !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
filoulefilou


Nombre de messages : 359

Date d'inscription : 24/05/2010


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyVen 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.
Revenir en haut Aller en bas
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 EmptyDim 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).

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Contenu sponsorisé





[Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty
MessageSujet: Re: [Module] IsoWalk (ex Use motsly the 8 Directions - U8D)   [Module] IsoWalk (ex Use motsly the 8 Directions - U8D) - Page 3 Empty

Revenir en haut Aller en bas
 
[Module] IsoWalk (ex Use motsly the 8 Directions - U8D)
Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3
 Sujets similaires
-
» Module PDFFile
» [Module] ShowInteractiveAreas
» Module Jeu de Plateforme
» Module Jeux de Tir
» Module InfoBulles

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: