| Le walk de mon perso ne semble pas fonctionner... | |
|
|
|
Auteur | Message |
---|
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 9:25 | |
| Voilà désolé d'e.....er le monde depuis quelques jours, mais décidément je n'y arrive pas, je ne comprends pas... Alors que j'entre ceci dans le globalscript de ma room... - Code:
-
function oBouquins_Look() { cMar.Walk (2400, 1052, eNoBlock, eWalkableAreas); player.FaceDirection (eDirectionLeft); player.Say("Barney est très loin d'être un as du rangement."); }
function oBouquins_Interact() { cMar.Walk(2400, 1052, eNoBlock, eWalkableAreas); player.FaceDirection (eDirectionLeft); player.Say("Il n'y a rien d'intéressant."); }
...ah bah mon perso (cMar) ne se rend pas du tout là où je lui ai pourtant dit d'aller. Et pourtant il m'écoute bien en respectant le FaceDirection que je lui ai appliqué. J'ai essayé de l'appeler player sur les premières lignes pour voir si ça ne fonctionnait pas mieux. En vain !... Je ne comprends vraiment pas ce que j'ai fait de mal pour qu'il m'inflige ça. Plusieurs interrogations découlent alors de cet incident technique: 1)Est-ce encore un truc que j'ai mal coché dans un sombre onglet de je-ne-sais quelle obscure fenêtre ? 2) D'ailleurs n'y a-t-il pas un moyen plus simple (par une fonction personnalisée ou autres) de dire à mon perso de se rendre à un point précis quand il regarde/interagit avec mes objets ?... Et de faire un peu comme avec les hotspots ? 3) Quelle(s) différence(s) dans ce cas précis entre player et cMar ? Et, question de plus relative au walk du personnage... 4) peut-on définir une coordonnée "inexistante", en dehors des coordonnées de la room ?... De façon par exemple à faire comme si mon perso s'avançait au premier plan en mettant ses pied hors du cadre ??? Merci encore _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 15:46 | |
| Pourquoi a tu passé eNoBlock comme paramètre, et non pas eBlock ? Parce que là ton personnage n'a même pas eu le temps de bouger un orteil que FaceDirection est appelée, interrompant le déplacement. Si tu avais passé eBlock alors AGS attendrait que ton personnage ait fini son déplacement pour exécuter la suite du code.
Concernant tes autres questions :
1) A priori, non.
2) Je ne comprends pas bien cette question, l'intérêt de la fonction Walk, c'est précisément de demander à ton perso de se rendre à un point précis non ? Je suppose que tu voudrais un truc plus systématique mais je ne vois pas précisément.
3) Si cMar est ton personnage jouable, alors en pratique cela ne fait aucune différence. Ou disons que c'est un peu comme si tu parles de ton patron en l'appelant "le patron". Que tu dises "le patron me demande de photocopier ces documents" ou "Monsieur Dupuis me demande de photocopier ces documents", tant que ton patron s'appelle Monsieur Dupuis alors l'information est strictement identique dans les deux cas. Par contre, si Monsieur Dupuis redevient un employé lambda et est remplacé par quelqu'un d'autre à son poste, les deux phrases n'auront plus du tout le même sens. C'est pareil ici : player indique qu'il s'agit du personnage jouable. Personnage qui peut parfois changer en cours de jeu. Mais si ce n'est pas le cas alors tu peux aussi bien l'appeler par son nom de script, ça ne fera pas de différence fondamentale, disons que c'est éventuellement plus clair pour les autres si tu met player quand tu partages ton code.
4) Oui, à condition d'entrer comme paramètre de zone de déplacement non pas eWalkableAreas (qui est la valeur par défaut si je ne m'abuse) mais eAnywhere. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 16:03 | |
| - valoulef a écrit:
- Pourquoi a tu passé eNoBlock comme paramètre, et non pas eBlock ? Parce que là ton personnage n'a même pas eu le temps de bouger un orteil que FaceDirection est appelée, interrompant le déplacement. Si tu avais passé eBlock alors AGS attendrait que ton personnage ait fini son déplacement pour exécuter la suite du code.
[...]
2) Je ne comprends pas bien cette question, l'intérêt de la fonction Walk, c'est précisément de demander à ton perso de se rendre à un point précis non ? Je suppose que tu voudrais un truc plus systématique mais je ne vois pas précisément. ahah oui c'est vrai que vu comme ça c'est un peu crétin comme demande . Non en fait je souhaite que si mon joueur se dit "je vais regarder ça" et qu'il change d'avis pendant que mon perso se déplace (ma premiere room est assez grande et ce peut être fastidieux pour mon joueur sinon), il puisse cliquer ailleurs pour faire autre chose. - Citation :
- 4) Oui, à condition d'entrer comme paramètre de zone de déplacement non pas eWalkableAreas (qui est la valeur par défaut si je ne m'abuse) mais eAnywhere
Alors je viens d'essayer et ça ne fonctionne pas des masses. Le perso rétrécit pendant son déplacement à un moment (il faut dire qu'il marche sur une walkable area qui a un effet de scaling), et il se fout correctement sur l'axe x mais il ne sort pas du cadre alors que j'ai spécifié une valeur y en dehors... d'ailleurs dans l'aperçu de ma room au lieu de me mettre la valeur y il y a un point d'interrogation. Sinon ton explication avec cMar et player est très claire. Merci EDIT: En fait lorsqu'il observe mon tas de bouquin qui est au premier plan, je souhaiterais qu'il fasse comme dans le jeu Tintin au Tibet sur Supernintendo _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 17:33 | |
| - Ravaillac a écrit:
En fait lorsqu'il observe mon tas de bouquin qui est au premier plan, je souhaiterais qu'il fasse comme dans le jeu Tintin au Tibet sur Supernintendo
Dans ton exemple Tintin est surtout situé derrière un walk-behind ( voir ici, si ce n'est pas déjà fait). Difficile de déterminer avec certitude si ses pieds sortent de l'écran. - Ravaillac a écrit:
- mais il ne sort pas du cadre alors que j'ai spécifié une valeur y en dehors
Ça c'est probablement parce que quand tu as importé les sprites de ton personnage, le bord inférieur du cadre est situé plus bas que ses pieds. Le pixel qui détermine les coordonnées x,y de ton personnage est le point central du bord inférieur du cadre du sprite, et non de la partie visible de celui-ci. Si il y'a un peu de vide sous les pieds de ton personnage dans le fichier importé, alors il faut toujours viser un peu plus bas quand tu détermine la coordonnée Y où il doit se déplacer. - Ravaillac a écrit:
- Le perso rétrécit pendant son déplacement à un moment (il faut dire qu'il marche sur une walkable area qui a un effet de scaling)
Hum ça c'est plus embêtant. Comme tu le dis, le scaling est déterminé par la walkable area, qui ne peut pas être dessinée en dehors de l'écran à ma connaissance. Il va donc falloir gruger un peu. Est-ce que ça te conviendrait si le personnage conserve la taille qu'il a juste avant de quitter la walkable area ? Il ne rétrécirait donc plus mais l'effet de scaling serait "figé" (il ne continuerait donc pas de grandir). Si tu veux prolonger l'effet de scaling quand le perso quitte l'écran ça pourrait être un peu plus compliqué... _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 17:52 | |
| - valoulef a écrit:
- Dans ton exemple Tintin est surtout situé derrière un walk-behind (voir ici, si ce n'est pas déjà fait). Difficile de déterminer avec certitude si ses pieds sortent de l'écran.
En fait je n'ai pas trouvé de gif qui expliquait bien ce que je voulais illustrer... Dans le jeu Tintin était au niveau du train et avançait normalement comme dans un Mario basique quoi, et quand tu appuyais sur le bas de la manette multidirectionnelle il s'approchait au premier plan pour papoter avec des bonhommes... - Citation :
- Ça c'est probablement parce que quand tu as importé les sprites de ton personnage, le bord inférieur du cadre est situé plus bas que ses pieds. Le pixel qui détermine les coordonnées x,y de ton personnage est le point central du bord inférieur du cadre du sprite, et non de la partie visible de celui-ci. Si il y'a un peu de vide sous les pieds de ton personnage dans le fichier importé, alors il faut toujours viser un peu plus bas quand tu détermine la coordonnée Y où il doit se déplacer.
ok merci... Je vais voir ce qu'il en est... _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 18:14 | |
| Nan rien à faire il ne se met absolument pas hors champs alors que j'ai pourtant entré des valeurs où normalement il devrait etre coupé au niveau des genoux comme pour un plan américain... En fait il semble se "bloquer" quand il s'approche du bord... Là ou je lui dis d'aller: Là où elle se retrouve: J'ai en effet de l'espace sous mon sprite mais bon là c'est quand même immense. On voit pas trop mais ça fait presque plus de trois fois la taille de ses chaussettes Donc je ne pense pas que ce soit le problème que tu mentionnes. Sinon pour répondre à ce que tu disais plus haut - Citation :
- Si tu veux prolonger l'effet de scaling quand le perso quitte l'écran ça pourrait être un peu plus compliqué...
C'est (malheureusement) ce que je veux faire et ça risque de pas mal chambouler ma scène je pense, étant donné que du côté des escaliers j'ai galéré pour faire correspondre la taille du perso entre les deux walkable areas (vu que en haut de l'escalier la personnage est plus grande que lorsqu'elle se trouve devant la porte centrale) N'y a-t-il pas moyen de gruger en lui foutant une room plus haute et en limitant les mouvements de l'écran à une certaine valeur de cadre par exemple ? comme ça je balance une troisième walkable area sous l'écran et basta ? Mais quelque chose me dit que ça ne va pas être aussi simple. Je me trompe ? _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 18:30 | |
| - Ravaillac a écrit:
En fait je n'ai pas trouvé de gif qui expliquait bien ce que je voulais illustrer... Dans le jeu Tintin était au niveau du train et avançait normalement comme dans un Mario basique quoi, et quand tu appuyais sur le bas de la manette multidirectionnelle il s'approchait au premier plan pour papoter avec des bonhommes... Oui je me rappelle très bien (je fais partie des masochistes qui ont persisté à s'y casser les dents jusqu'au dernier niveau ). Tu as essayé d'entrer une valeur y débilement grande ? Genre 5000 ? Comme ça on serait fixés. Tu as bien passé le paramètre eAnywhere ? - Ravaillac a écrit:
- N'y a-t-il pas moyen de gruger en lui foutant une room plus haute et en limitant les mouvements de l'écran à une certaine valeur de cadre par exemple ? comme ça je balance une troisième walkable area sous l'écran et basta ?
Excellente idée ! Je n'y avais pas pensé. Ça me semble tout-à-fait faisable en utilisant SetViewport, GetViewportX et GetViewportY. Le problème c'est qu'on ne peut pas figer le scrolling sur un seul des deux axes, donc il va falloir l'utiliser intelligemment car visiblement ta room utilise aussi un scrolling horizontal. Je vais creuser ça, je te laisse commencer à y réfléchir. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 18:39 | |
| En fait ça peut être assez simple. Est-ce que c'est gênant de figer tout le scrolling (y compris sur l'axe x) au moment du déplacement (et seulement à ce moment là) ? Ou est-ce que l'écran peut être amener à scroller latéralement aussi durant cette séquence ? Est-ce que Le personnage revient à sa position initiale de manière scriptée, juste après, ou c'est au joueur de le déplacer pour revenir ? _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:01 | |
| Bah dans l'absolu si j'ai fait une scène aussi large c'était justement pour avoir un bel effet de scrolling et pour la "mise en scène" du jeu, dans l'idée, ça faisait un peu plus "grande bibliothèque" de scroller... Mais faut voir... Car au tout début le scrolling me dérangeait donc bon.
Sinon, c'est au joueur de déplacer le perso. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:15 | |
| - valoulef a écrit:
- Tu as essayé d'entrer une valeur y débilement grande ? Genre 5000 ? Comme ça on serait fixés. Tu as bien passé le paramètre eAnywhere ?
Alors bon du coup je me rends compte que je m'embrouillais un peu au niveau de x et y. Quel abruti. Donc avec une valeur y de 1200 elle se retrouve en plan américain devant les bouquins, comme je le souhaite, par contre en s'y rendant elle rétrécit toujours en chemin, puis se remet à grandir (tout ça a peu près au niveau du sofa)... arrivée devant les bouquins en mode look elle dit sa réplique, et ensuite elle est complétement bloquée si je lui dis d'aller ailleurs ou autre... _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:18 | |
| Alors là c'est sûrement que tu utilise deux walkable areas et que tu as mal défini les propriétés de scaling, non ? _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:32 | |
| - valoulef a écrit:
- Alors là c'est sûrement que tu utilise deux walkable areas et que tu as mal défini les propriétés de scaling, non ?
J'ai fait ceci... Pour l'aire principale: Pour les escaliers: _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:37 | |
| Est-ce que tu pourrais m'envoyer en privé un lien de téléchargement de ton projet, en l'uploadant sur Dropbox par exemple (il faut zipper tout le dossier), ou pas ? Ce serait plus facile pour comprendre. Edit : Si tu n'as pas de compte Dropbox tu peux utiliser WeTransfer _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 4 Mai 2020 - 19:43 | |
| on se capte en mp _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 16:07 | |
| Bon. C'est plus compliqué que ce que je pensais... D'abord : - valoulef a écrit:
- Ça me semble tout-à-fait faisable en utilisant SetViewport, GetViewportX et GetViewportY.
Ces informations ne sont en fait plus d'actualité dans la version 3.5 d'AGS. En effet, les fonctions liées à la caméra ont été revues. Pour plus d'infos, se rapporter à la catégorie "caméra" dans l'index de l'aide d'AGS (pas l'aide en ligne, l'aide intégrée au logiciel). Mais ceci ne change pas fondamentalement le problème. Le principal souci c'est que tu utilises le module rellax qui gère la caméra de manière autonome. Donc à moins de faire des modifications directement dans le module (ce qui dépasse mes compétences actuelles), ou de le désactiver dans cette room (ce qui n'est pas ce que tu souhaites), je ne vois pas trop de moyen de figer la coordonnée Y de la caméra. En utilisant le scrolling de base d'AGS, je n'ai pas encore réussi à le faire mais ça doit être un peu plus réalisable. Sauf que je ne suis pas sûr que ça vaille le coup de flinguer ton scrolling joli (j'ai pas vu de souci esthétique lié à ça, au passage, je trouve le rendu pas mal) juste pour permettre au personnage d'être cadré en "plan américain" à un moment précis. Je vais essayer de continuer à y réfléchir pour voir si on ne peut pas trouver une solution alternative. Ah, j'oubliais : si le personnage rétrécit à un moment donné c'est parce qu'on a passé le paramètre eAnywhere qui fait que le personnage se déplace en ligne droite en ignorant le tracé de la zone de déplacement, et sort donc de celle ci avant même de se retrouver au premier plan. De toute façon quand on reprend le contrôle du personnage on est bloqué parce que le déplacement manuel en mode WalkTo est programmé en eWalkableAreas (logique). Donc ça semble pas être une solution très viable non plus en l'état. Si quelqu'un d'autre passe par ici et a une idée, il est le bienvenu. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 16:48 | |
| OK j'ai pas super suivi, mais ce serait pas une option d'utiliser eWalkableAreas jusqu'au bord inférieur de l'écran, puis passer en eAnywhere après ça ? Avec une petite condition sur Y dans repExec (et peut-être aussi dans on_mouse_click) ça devrait le faire tout seul non ? _________________ 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 ! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 17:02 | |
| - Kitai a écrit:
- OK j'ai pas super suivi, mais ce serait pas une option d'utiliser eWalkableAreas jusqu'au bord inférieur de l'écran, puis passer en eAnywhere après ça ? Avec une petite condition sur Y dans repExec (et peut-être aussi dans on_mouse_click) ça devrait le faire tout seul non ?
Mais une fois que la commande cMar.Walk (2420, 1052, eBlock, eWalkableArea); est passé on ne peut pas changer les paramètres en cours de route (enfin je suppose ?) donc il faudrait plutôt faire ça en deux étapes, ce qui est pas forcément idéal, et il reste le problème que le personnage restera bloqué quand le joueur reprendra le contrôle, ainsi que le problème du scaling hors zone. Alors oui, sur le papier c'est faisable, mais bon c'est un peu une usine à gaz. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 17:41 | |
| - valoulef a écrit:
- Mais une fois que la commande cMar.Walk (2420, 1052, eBlock, eWalkableArea); est passé on ne peut pas changer les paramètres en cours de route (enfin je suppose ?) donc il faudrait plutôt faire ça en deux étapes
C'est pas si compliqué à faire dans la fonction oBouquins_Interact. - valoulef a écrit:
- il reste le problème que le personnage restera bloqué quand le joueur reprendra le contrôle
C'est pour ça que je suggérais de vérifier ça dans on_mouse_click - valoulef a écrit:
- ainsi que le problème du scaling hors zone
J'ai pas dû bien comprendre ça, c'est pas justement le fait d'utiliser eAnywhere et passer sur une walkable area avec un certain paramètre de scaling qui pose problème ? Ou bien tu veux dire que le scaling en dehors de l'écran est pas pareil que le scaling en premier plan ? _________________ 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 ! |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:01 | |
| EDIT Important : oubliez ces histoires de fantômes, les fantômes ça existe pas. Voir ce message plutôt. Les 3 étapes initiales décrites ci-dessous ne sont plus nécessaires avec la nouvelle version !Double-post : j'ai pas pu m'empêcher de faire un module à propos de ça, plutôt que travailler sur mes projets pro... Donc voilà le lien pour télécharger le module AsyncWalk : https://we.tl/t-P6rJ1iUmgDAprès l'avoir importé, il y a trois trucs simples à faire pour l'initialiser : 1. Il faut créer une vue totalement vide, c'est-à-dire constituée exclusivement d'une sprite entièrement transparente 2. Il faut créer un personnage "fantôme" et lui assigner cette vue normale 3. Supposons que vous avez nommé ce personnage cFantome, il faut mettre ça dans la fonction game_start : - Code:
-
AsyncWalk.Ghost = cFantome; Voilà, maintenant pour l'utiliser c'est plutôt simple, si je reprends le premier exemple de @Ravaillac ça donne ça : - Code:
-
function oBouquins_Look() { if (cMar.HasAsyncWalkedTo(2400, 1052, true)) { player.FaceDirection (eDirectionLeft); player.Say("Barney est très loin d'être un as du rangement."); } } Le code dans les { } sera exécuté seulement lorsque cMar aura atteint sa destination (= 2400,1052). J'ai passé un troisième argument à HasAsyncWalkedTo : true. Ça veut dire que cMar a le droit d'ignorer les walkable areas si au bout d'un moment elles suffisent plus pour atteindre sa destination. Le module se charge aussi de détecter les clics "dans le vide" en mode WalkTo sur les walkable areas : si le personnage-joueur se trouve en dehors d'une walkable area à l'origine, il va commencer à se déplacer en les ignorant pour rejoindre la plus proche (techniquement, rejoindre le personnage fantôme automatiquement placé sur la walkable area la plus proche) puis à nouveau faire attention aux walkable areas dans ses déplacements une fois qu'il l'aura rejointe. De façon générale, c'est une bonne idée de remplacer tous les Walk(x, y, eNoBlock) par AsyncWalk(x,y), histoire d'être sûr que les persos se retrouvent jamais bloqués s'ils se trouvent hors d'une walkable area au moment où la fonction est appelée. Dernière note : HasAsyncWalkedTo ne fonctionne que dans les fonction d'interaction, celles qu'on génère depuis la grille de propriétés des persos/objets/hotspots/objets d'inventaire. Par exemple ça marchera pas au milieu d'un dialogue. Heureux de répondre à toute question _________________ 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 !
Dernière édition par Kitai le Mer 6 Mai 2020 - 15:27, édité 2 fois |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:11 | |
| Waah ! Je reconnais bien là ton dévouement - Kitai a écrit:
- Heureux de répondre à toute question
Tu as programmé le module sur AGS 3.5 ? Parce que chez moi AGS n'accepte plus la fonction GetViewport (comme je l'ai laissé entendre plus haut sans vraiment le dire). _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:15 | |
| - valoulef a écrit:
- Tu as programmé le module sur AGS 3.5 ? Parce que chez moi AGS n'accepte plus la fonction GetViewport (comme je l'ai laissé entendre plus haut sans vraiment le dire).
Ouais j'étais pas sûr d'avoir bien compris ce que tu as dit. Mon AGS c'est cette version-là : - Citation :
- AGS Editor .NET (Build 3.5.0.23)
v3.5.0, December 2019 Mais j'ai aussi l'option Script compatibility level qui est réglée sur 3.2.1Sens-toi libre de mettre à jour le code, y'a qu'un seul endroit où j'utilise les fonctions GetViewPort* et j'imagine que la mise à jour devrait être plutôt minimale Edit : de ce que j'ai compris, il devrait suffire de remplacer le tout dernier else if par ça : - Code:
-
else if (mouse.Mode == eModeWalkto){ Point *roompt = Screen.ScreenToRoomPoint(mouse.x, mouse.y); if (roompt == null) player.AsyncWalk(mouse.x, mouse.y); else player.AsyncWalk(roompt.x, roompt.y); } _________________ 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 !
Dernière édition par Kitai le Mar 5 Mai 2020 - 23:28, édité 2 fois |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:25 | |
| - Kitai a écrit:
- Mais j'ai aussi l'option Script compatibility level qui est réglée sur 3.2.1
Ah bah ça vient de là alors. Voici ce que dit le topic de la version Release Candidate d'AGS 3.5 : Les infos plus complètes sont dans la documentation fournie avec AGS. - Kitai a écrit:
- Sens-toi libre de mettre à jour le code, y'a qu'un seul endroit où j'utilise les fonctions GetViewPort* et j'imagine que la mise à jour devrait être plutôt minimale
Du coup, oui, c'est particulièrement simple (mais ceci dit pas plus compliqué de changer le paramètre de compatibilité) : Il suffit de remplacer : - Code:
-
player.AsyncWalk(GetViewportX()+mouse.x, GetViewportY()+mouse.y); par - Code:
-
player.AsyncWalk(Game.Camera.X+mouse.x, Game.Camera.Y+mouse.y); _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:30 | |
| _________________ 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 ! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:35 | |
| Oh, bien vu ! Bon bah le plus simple est d'opter pour la solution rétro-compatibilité _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:47 | |
| Nouvelle édition, exorcisée : [EDIT - https://we.tl/t-G0hkHeHRUt ] - Kitai a écrit:
- Pour l'utiliser c'est plutôt simple, si je reprends le premier exemple de @Ravaillac ça donne ça :
- Code:
-
function oBouquins_Look() { if (cMar.HasAsyncWalkedTo(2400, 1052, true)) { player.FaceDirection (eDirectionLeft); player.Say("Barney est très loin d'être un as du rangement."); } } Le code dans les { } sera exécuté seulement lorsque cMar aura atteint sa destination (= 2400,1052). J'ai passé un troisième argument à HasAsyncWalkedTo : true. Ça veut dire que cMar a le droit d'ignorer les walkable areas si au bout d'un moment elles suffisent plus pour atteindre sa destination.
Le module se charge aussi de détecter les clics "dans le vide" en mode WalkTo sur les walkable areas : si le personnage-joueur se trouve en dehors d'une walkable area à l'origine, il va commencer à se déplacer en les ignorant pour rejoindre la plus proche (techniquement, rejoindre le personnage fantôme automatiquement placé sur la walkable area la plus proche) puis à nouveau faire attention aux walkable areas dans ses déplacements une fois qu'il l'aura rejointe.
De façon générale, c'est une bonne idée de remplacer tous les Walk(x, y, eNoBlock) par AsyncWalk(x,y), histoire d'être sûr que les persos se retrouvent jamais bloqués s'ils se trouvent hors d'une walkable area au moment où la fonction est appelée.
Dernière note : HasAsyncWalkedTo ne fonctionne que dans les fonction d'interaction, celles qu'on génère depuis la grille de propriétés des persos/objets/hotspots/objets d'inventaire. Par exemple ça marchera pas au milieu d'un dialogue. Toujours heureux de répondre à toute question _________________ 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 !
Dernière édition par Kitai le Lun 11 Mai 2020 - 18:07, édité 1 fois (Raison : Remplace par le bon lien) |
|
| |
Contenu sponsorisé
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... | |
| |
|
| |
| Le walk de mon perso ne semble pas fonctionner... | |
|