|
| [RESOLU] Plusieurs Walk-behinds area + Description objets | |
| | Auteur | Message |
---|
Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 0:46 | |
| Bonjour à tous, Je suis nouveau sur AGS que je teste depuis peu. Je dois dire que j'hésite en fait entre utiliser AGS ou Wintermute, mais le premier avantage à AGS, est semble-t-il d'avoir une communauté française. Je commence donc d'abord par tester toutes les fonctionnalités à partir de cas concrets, et je but actuellement sur deux choses : - Plusieurs Walk-behinds area : comment fait-on ? J'ai sur mon background deux meubles. J'ai donc mis une aire sur le premier meuble et positionné la baseline sous celui-ci pour que le personnage puisse se déplacer. Mais mon deuxième meuble est plus bas, et je ne peux donc pas utiliser la même aire, car la baseline ne sera pas au même endroit. Problème : Je ne vois pas comment créer une deuxième aire. Je ne peux que jonler entre ID 0 et ID 1. Mais comment créer une aire ID 2, 3, etc... ? - Description des objets : J'aimerai, quand la souris survole un objet, que le nom de l'objet en question s'affiche. Comment faut-il faire ? Je ne vois pas d'événement de ce genre pour les objets. Dois-je obligatoirement créer un hotspot ? Merci d'avance pour votre aide précieuse !
Dernière édition par Skippy92 le Lun 18 Mar 2013 - 18:46, é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: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 1:06 | |
| Bienvenue à toi, Skippy92 Tu te rendras vite compte que l'avantage d'avoir une communauté française peut peser très lourd dans ton choix définitif ! On se sent quand même moins seul face aux problèmes qui se posent... Quelle version utilise-tu ? Normalement, quand tu affiche les walk behind, tu as à droite, au dessus des propriétés, un menu déroulant dans lequel tu peux choisir entre ID0 et ID15. Pour créer un deuxième walk behind, il te suffit alors de sélectionner ID2 et de dessiner une nouvelle zone. Mais visiblement tu n'as que ID0 et ID1 ce qui est bizarre... Je ne peux malheureusement pas t'aider pour la deuxième question, par contre drôle de coïncidence, j'étais justement en train de chercher la même chose (parmi de nombreuses autres choses complexes), donc je me joins à la demande et serai très attentif aux réponses. _________________ 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.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 7:35 | |
| Bienvenu Skippy92 ! -Comme l'a dit valoulef, il est assez facile de faire plusieurs Walk-behind areas : . 15 par Room avec l'éditeur officiel. - Concernant l'affichage d'un objet, il suffit d'utiliser le label @overhotspot@ à l'endroit souhaiter. Oui oui, malgré son nom un peu trompeur, ce dernier fonctionne bien pour les Hotspots, les objets et les personnages. Tu peux lire ça si tu veux. Pour le choix du moteur, j'ai un peu fouillé (mais pas trop), et il me semble que pour un Point & Clic en 2D, AGS est un excellent choix : moteur qui à de la bouteille, jeux portables (PC, Linux, iOS, Android, PSP et bientôt Mac), simple et puissant, communauté nombreuse (module, plugins, traduction, aide, collaboration, concours). Après, en tout cas pour mon cas, la production des ressources (sprites, background, bruitage et musique) me prend environ de 20 fois plus de temps que l’implémentation de tout ça sous AGS. Du coup, une fois que j'aurais tout produit, j'imagine que ce n'est pas si long de tout réimplémenter sous un autre moteur... Là où Wintermute marque des points, c'est sur la gestion native des personnages en 3D (même si AGS peut le faire via des plugins). Bon courage ! |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 12:11 | |
| Salut et bienvenue Skippy92. Je n'ai rien à ajouter à ce qu'ont dit valoulef et Billbis sur tes questions. En revanche, concernant la communauté française, je vais faire un peu de pub pour moi-même. Tout d'abord, sache qu' une version française d'AGS est actuellement disponible. Je suis actuellement en train de travailler à une version plus récente avec Billbis, mais celle que tu peux d'ores et déjà télécharger est tout à fait fonctionnelle. Donc si le côté francophone te met plus à l'aise, n'hésite pas ! Ensuite, comme tu peux le voir sur la page du logiciel français, il existe aussi une traduction française collaborative du manuel d'aide, qui peut remplacer le fichier d'aide original dans le logiciel (c'est d'ailleurs ce qui est proposé en téléchargement). Voilà, n'hésite pas à revenir vers nous avec tes questions et surtout à nous présenter ton/tes projet(s) ! _________________ 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: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 12:44 | |
| Du coup je me permet de squatter se topic vu que la question me concerne (j'espère que l'auteur ne m'en voudra pas ). Alors j'ai réussi a créer un GUI qui permet d'afficher le nom de ce qui est survolé en bas de l'écran. C'est beaucoup plus simple que je pensais, c'est super (comme dirait mon graphiste vénéré) ! J'ai donc créé une nouvelle étiquette avec comme texte @overhotspot@ (merci la traduction de l'aide d'AGS ) Maintenant, j'aimerai implémenter un nouvel élément. Exemple : Admettons que j'ai un personnage qui s'appelle Roger. Je voudrais qu'en plus de son nom affiché quand le curseur le survole, un texte corresponde au mode du curseur (sachant que j'utilise un gameplay "moderne". En gros, je voudrais que ça marque, selon ce qui est survolé "Parler à Roger", "Intéragir avec arbre", "Regarder paysage", etc... et que ce soit personnalisable du genre "Grimper à l'arbre". Je m'inspire notamment de Runaway 3. Très compliqué, ou pas ? Je m'en vais de ce pas créer un nouveau topic pour une question assez différente... Je suis bien parti pour mettre à contribution la science de nos membres connaisseurs _________________ 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: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 14:44 | |
| - valoulef a écrit:
- Maintenant, j'aimerai implémenter un nouvel élément. Exemple : Admettons que j'ai un personnage qui s'appelle Roger. Je voudrais qu'en plus de son nom affiché quand le curseur le survole, un texte corresponde au mode du curseur (sachant que j'utilise un gameplay "moderne". En gros, je voudrais que ça marque, selon ce qui est survolé "Parler à Roger", "Intéragir avec arbre", "Regarder paysage", etc... et que ce soit personnalisable du genre "Grimper à l'arbre". Je m'inspire notamment de Runaway 3. Très compliqué, ou pas ?
Tout d'abord, est-ce que tu as déjà fait ton système pour afficher "simplement" le nom des personnages à leur survol ? Car une fois que tu as ça, ajouter un texte spécifique devant est plutôt facile. L'idée qui me vient est de recourir aux propriétés personnalisées. Après, dans ton système pour afficher le nom de l'élément (objet, personnage...) que tu survoles, il te suffit de vérifier si la propriété personnalisée pertinente possède une valeur spécifiée (qui sera, pour ton arbre, "grimper") et si c'est le cas, ajouter ce texte devant le nom de l'élément. Je ne rentre pas dans les détails mais si tu as des questions sur l'implémentation de tout ça, n'hésite pas bien entendu. _________________ 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: [RESOLU] Plusieurs Walk-behinds area + Description objets Sam 2 Mar 2013 - 19:45 | |
| Selon l'aide, il n'y a que 5 mots clés permettant "d'automatiser" le texte d'un GUI, et aucun ne prend en compte une propriété personnalisée. Donc ça m'intéresse dans savoir plus en détail, même si je me rends finalement compte que c'est un peu obsolète pour mon jeu, vu qu'il n'y aura que 2 solutions : clic gauche=action principale (selon le curseur), clic droit = observer. Dans runaway 3, le clic droit permet de swicher entre interagir et observer (ce que je pourrais faire aussi, mais pour l'instant c'est pas prévu) et le texte décrivant l'action possible variait, par exemple si on avait un couteau d'inventaire actif, on pouvait obtenir un truc du style "couper la ficelle avec le couteau". Sans objet d'inventaire actif, il ça marquait souvent des trucs humoristiques du style "se plaindre de la chasse au pixel" quand on survolait un petit interrupteur (inutile d'ailleurs). Mais bon je ne vais pas faire tout ça, donc du coup c'est pas indispensable. En revanche, des indications sur ton idée m'intéressent (si ça ne te coûte pas trop !), parce que ça pourrait m'être utile pour plus tard de comprendre comment associer une propriété personnalisée au texte d'un GUI. _________________ 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: [RESOLU] Plusieurs Walk-behinds area + Description objets Dim 3 Mar 2013 - 11:54 | |
| - valoulef a écrit:
- Selon l'aide, il n'y a que 5 mots clés permettant "d'automatiser" le texte d'un GUI, et aucun ne prend en compte une propriété personnalisée.
Bon j'avais écrit tout un code mais le fameux "Précédent" du navigateur a fait des siennes. C'est justement pour ça que je te demandais si tu avais un système pour afficher le nom d'autre chose que les hotspots (personnages et objets), puisque pour ce faire, tu dois utiliser GetLocationName qui va nous être utile. Tu devras aussi utiliser GetLocationType que tu as sûrement utilisé si tu as un "gameplay moderne" comme tu dis. Bref, revoici sommairement le bout de code qui devrait t'intéresser (en supposant que tu as créé une propriété personnalisée de type textuel nommée Action pour tes personnages, tes objets et tes zones interactives) : - Code:
-
String nomSurvole = GetLocationName(mouse.x, mouse.y); if ((nomSurvole != null) && (nomSurvole != "")) { String texteAction; if (GetLocationType == eLocationHotspot) { Hotspot* zoneSurvolee = Hotspot.GetAtScreenXY(mouse.x,mouse.y); texteAction = zoneSurvolee.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Marcher vers "; } else if (GetLocationType == eLocationObject) { Object* objetSurvole = Object.GetAtScreenXY(mouse.x,mouse.y); texteAction = objetSurvole.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Utiliser "; } else if (GetLocationType == eLocationCharacter) { Character* persoSurvole = Character.GetAtScreenXY(mouse.x,mouse.y); texteAction = persoSurvole.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Parler avec "; } texteAction = texteAction.Append(nomSurvole); // Mettre ici à jour le texte de ton interface avec texteAction } _________________ 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: [RESOLU] Plusieurs Walk-behinds area + Description objets Dim 3 Mar 2013 - 19:02 | |
| Merci mon cher Kitai, tu assures ! Tout ça est fort intéressant, et du coup c'est bien possible que je l'intègre au jeu (quand on y arrive, c'est plus tentant !). J'aurais bien eu du mal à trouver se code tout seul, car il y a encore des notions que je ne maîtrise pas forcément. Par contre la question que je me posais initialement était justement comment mettre à jour le texte de l'interface avec un code. J'ai finalement trouvé avec l'aide, et en ouvrant la version anglosaxonne d'AGS (le seul inconvénient de la version française est que les termes changent, et du coup c'est plus difficile de deviner les termes à rechercher dans l'aide). En l'occurrence, c'était le terme "label" que j'ai du chercher, dans l'aide. Il faut donc simplement taper "(nom du label/étiquette).text =" pour définir le texte du Gui à partir du script. Chez moi, ton code contenait quelques erreurs/bugs mais c'est très bien, ça m'a obligé à m'y confronter et donc mieux le comprendre. Pour info, il manquait les "(mouse.x, mouse.y)" derrière "GetLocationType". Ensuite, il y avait juste un souci, le texte restait affiché quand le curseur quittait l'hotspot (ou perso, objet...). J'ai un peu galéré à régler le problème, mais j'ai fini par trouver. J'ai d'abord tenté d'ajouter : - Code:
-
else if (GetLocationType(mouse.x, mouse.y) == eLocationNothing) texteAction = ""; ... mais ça n'avait aucun effet. Finalement, j'ai replacé le "String texteAction" au dessus du premier "if", et ajouté à la fin du code - Code:
-
else if ((nomSurvole == null) || (nomSurvole == "")) texteAction = ""; Et là, a priori, ça marche. Donc pour résumer, voici le code que j'ai intégré à la fonction repeatedly_execute : - Code:
-
String nomSurvole = Game.GetLocationName(mouse.x, mouse.y); String texteAction; if ((nomSurvole != null) && (nomSurvole != "")) { if (GetLocationType(mouse.x, mouse.y) == eLocationHotspot) { Hotspot* zoneSurvolee = Hotspot.GetAtScreenXY(mouse.x,mouse.y); texteAction = zoneSurvolee.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Marcher vers "; } else if (GetLocationType(mouse.x, mouse.y) == eLocationObject) { Object* objetSurvole = Object.GetAtScreenXY(mouse.x,mouse.y); texteAction = objetSurvole.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Utiliser "; } else if (GetLocationType(mouse.x, mouse.y) == eLocationCharacter) { Character* persoSurvole = Character.GetAtScreenXY(mouse.x,mouse.y); texteAction = persoSurvole.GetTextProperty("Action"); if ((texteAction == null) || (texteAction == "")) texteAction = "Parler avec "; }
texteAction = texteAction.Append(nomSurvole); // Mettre ici à jour le texte de ton interface avec texteAction } else if ((nomSurvole == null) || (nomSurvole == "")) texteAction = ""; Etiquette2.Text = texteAction;
Ca te parait "propre" ? Juste deux questions simples et après je te lâche les baskets 5 minutes : - Peux tu m'éclairer sur la différence entre "texteAction/nomSurvole == null" et texteAction/nomSurvole == "" " ?. - Ma fonction Repeatedly_execute risque d'être très chargée parce que je m'en sers beaucoup pour mon moteur de jeu. Au bout d'un moment, il ne risque pas de saturer à force de devoir vérifier des tas de trucs tous les 1/40 de seconde ? Bon c'est sûrement idiot comme question, ça reste probablement dérisoire mais je demande quand même, on ne sait jamais. Merci infiniment en tout cas, je ne sais pas ce que je ferais sans toi ! _________________ 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.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Lun 4 Mar 2013 - 18:01 | |
| - valoulef a écrit:
- - Ma fonction Repeatedly_execute risque d'être très chargée parce que je m'en sers beaucoup pour mon moteur de jeu. Au bout d'un moment, il ne risque pas de saturer à force de devoir vérifier des tas de trucs tous les 1/40 de seconde ? Bon c'est sûrement idiot comme question, ça reste probablement dérisoire mais je demande quand même, on ne sait jamais.
C'est une crainte que j'avais aussi au début, mais en pratique non. Ou alors faut vraiment y aller, mais il y a de la marge. Après tout, nos processeurs multicoeurs font plusieurs Milliards de cycle de calculs par secondes. Disons que les quelques if dans le Repeatedly_execute ne sont pas grand chose par rapport à la gestions des ressources graphiques (jusqu’à 1024*786 pixels à rafraichir 40 fois par secondes !). |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Lun 4 Mar 2013 - 18:38 | |
| - Billbis a écrit:
Après tout, nos processeurs multicoeurs font plusieurs Milliards de cycle de calculs par secondes. Disons que les quelques if dans le Repeatedly_execute ne sont pas grand chose par rapport à la gestions des ressources graphiques (jusqu’à 1024*786 pixels à rafraichir 40 fois par secondes !). Oui, c'est bien ce que je me suis dit après... Mais bon, en tant qu'humain naïf on se met à la place de la bête, et on aurait presque tendance à la plaindre Pour exemple je suis en train de chopper la nausée en tentant simplement d'établir les équations que tu as déjà établies d'une manière ou d'une autre Mais ça, c'est un autre sujet _________________ 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.
|
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Lun 4 Mar 2013 - 22:24 | |
| Bonjour, Merci beaucoup pour vos réponses. Pour l'instant, je débute, donc je commence d'abord à prendre en main l'outil et à voir comment faire pour réaliser les actions qui m'intéressent. Mon modèle de référence, c'est "Day of the Tentacle". J'essaye donc, pour m'exercer, d'en reproduire les fonctionnalités de base. Et quand j'aurai un peu plus avancé, je me mettrais à développer le jeu auquel je pense, mais rien ne presse. Pour le walk-behind, je n'avais pas compris que c'était dans le menu déroulant, je cherchais un bouton "ajouter". Donc c'est réglé, ça marche. Pour mon autre besoin, grâce aux indications j'ai réussi à faire un nouveau GUI en bas d'écran avec les boutons d'action de base : marcher / regarder / parler / utiliser + l'inventaire + flèches de navigation de l'inventaire + charger / sauver / quitter. Il y a aussi un label qui écrit bien le verbe suivit de l'objet quand la souris survole un objet ou un hotspot. Je m'interroge par contre sur le fait de faire d'autres actions comme prendre / pousser / tirer / ouvrir / fermer / donner, comme dans "Day of the Tentacle". Mais par défaut, au mieux, je peux rajouter prendre, c'est tout. D'où mon interrogation. |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Lun 4 Mar 2013 - 22:30 | |
| As tu regardé du coté du template "9 Verb MI style" ? Il en contient déjà pas mal ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mar 5 Mar 2013 - 23:40 | |
| En effet, cela semble tout de suite beaucoup plus simple ainsi... Du coup, je peux passer au problème suivant : "Comment animer un personnage" pour qu'il fasse autre chose que marcher ou parler, comme prendre un objet par exemple. Ou faire une action en cas d'inaction du jeu pendant 20 secondes. Une fois que j'ai créé une nouvelle vue, comment l'appliquer ? Merci d'avance ! |
| | | valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mer 6 Mar 2013 - 9:04 | |
| N'hésite pas à créer un nouveau topic pour chaque nouvelle question. Ça te permettra de mettre "résolu" à celui-ci, est c'est beaucoup plus facile pour tous ceux qui passent derrière et qui essaient de trouver une solution au même problème que toi. Personnellement je n'ai pas encore utilisé les animation contextuelles, mais les rubriques d'aides à ce sujet sont assez transparentes : les commandes utiles sont notamment LockView et Animate. Pour mettre une animation en cas d'inaction, c'est directement dans les paramètres du personnage. Il y a l'option "Vue d'Attente" (qui doit correspndre à la Idle view dans la version anglaise si je ne m'abuse ?). Par contre pour définir la durée d'inaction nécessaire au déclenchement de l'animation, je ne sais pas où c'est. _________________ 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.
|
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mer 6 Mar 2013 - 18:19 | |
| valoulef à pratiquement répondu à tout, je rajoute juste un ou deux détails: - Skippy92 a écrit:
- Ou faire une action en cas d'inaction du jeu pendant 20 secondes.
Tu peux rajouter une vue d'attente à IdleView, et une deuxième (ou un clignement des yeux) à BlinkingView. Pour les délais, ce son des paramètres à rentrer via le script, par exemple dans la fonction game_start() : SetIdleView BlinkInterval Pour prendre un objet et autres animations de ce goût, il faut en effet passer par LockView et Animate. Un petit exemple : - Code:
-
cBoatChapX.StopMoving(); cBoatChapX.LockView(VCHUTECHAPX); cBoatChapX.Animate(0, 3, eOnce, eBlock); Si tu l’utilises fréquemment, je te conseil d'en faire une fonction personnalisée. |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Dim 10 Mar 2013 - 23:12 | |
| J'ai mis le sujet comme étant résolu. J'en ouvrirai d'autres en fonction de mes besoins. J'ai pu configurer l'Idleview et vu comment modifier le délai. Et j'ai pu créer une vue pour prendre un objet et l'automatiser dans une fonciton personnalisée. Par contre, je n'ai pas réussi à faire fonctionner BlinkingView et ThinkingView. Suite au prochain épisode. Merci en tout cas pour votre aide précieuse. |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Lun 11 Mar 2013 - 18:27 | |
| Félicitation pour tes accomplissements, Skippy92 ! Javais aussi eu un problème non résolu avec la BlinkingView, que je n'arrivais pas à faire fonctionner, tout comme toi. J'ai l'intuition que le moteur ne lance la BlinkingView uniquement dans les dialogues, mais je me trompe sans doute. Si j'arrive à la faire fonctionner, je te tiens au courant ! Pour la thinking view, l'appelles-tu correctement dans le script ? - Code:
-
cEgo.Think("I wonder what's for dinner.");
Si oui, il y a peut-être un problème avec l'option du général setting "Always display text as speech", essaye de la mettre sur false... |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mar 12 Mar 2013 - 0:04 | |
| Merci Billbis C'est bon pour la ThinkingView. La BlinkingView n'est pas fondamentale, ce n'est pas grave. Par contre, changer de temps en temps l'IdleView m'intéresserait. Afin que le personnage principal, quand il est inactif, ne fasse pas toujours la même chose : se gratter, tourner la tête, siffler... Peut-être en créant une fonction dans "repeatedly_execute" qui change l'IdleView toutes les 30 secondes. C'est jouable ? En créant un timeout peut-être qui change la valeur de l'IdleView après 30 secondes ? |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mar 12 Mar 2013 - 7:44 | |
| - Skippy92 a écrit:
- Peut-être en créant une fonction dans "repeatedly_execute" qui change l'IdleView toutes les 30 secondes. C'est jouable ? En créant un timeout peut-être qui change la valeur de l'IdleView après 30 secondes ?
Ces deux solutions sont tout à fait envisageables. Tu utilises simplement la commande SetIdleView, en t'assurant éventuellement que le personnage n'est pas actuellement animé avec la vue d'attente (en vérifiant Animating et View). _________________ 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 ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mar 12 Mar 2013 - 22:21 | |
| Ca marche, mais comment écrire le fait d'attendre 30 secondes ? J'ai essayé ça : Soit RandomViewBernard une variable globale. - Code:
-
function repeatedly_execute() { if (RandomViewBernard == 0) { while (player.Animating) Wait(1); Wait(1000); // J'attends 25 secondes cBernard.SetIdleView(20, 20); // La vue d'attente est la 20, toutes les 20 secondes RandomViewBernard = 1; } else { while (player.Animating) Wait(1); Wait(1000); // J'attends 25 secondes cBernard.SetIdleView(22, 20); // La vue d'attente est la 22, toutes les 20 secondes RandomViewBernard = 0; } }
Ainsi, toutes les 20 secondes, mon personnage "Bernard" a une action d'attente, celle-ci se modifiant toutes les 25 secondes. Ca marche, sauf que l'utilisation du Wait() rends le jeu inactif. Comment faire ça autrement pour écouler un délai de 30 secondes qui n'empêche pas de jouer ? |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mar 12 Mar 2013 - 22:43 | |
| En effet, Wait est une commande bloquant l'exécution. L'idée serait plutôt de laisser l'exécution défiler, puis de vérifier quand tu as atteint les 30 secondes. Et cela se fait grâce aux Timers. Et comme tu as commencé à le faire dans ton code, tu vérifies à chaque cycle de jeu si ton timer est expiré : si c'est le cas, les 30 secondes seront bien écoulées et alors tu pourras lancer ta commande. Mais petit conseil, n'utilises pas la commande Wait pour attendre la fin de l'animation du personnage : tu bloques là encore l'exécution. Change plutôt la valeur d'une variable globale que tu vérifies là encore dans le repeatedly_execute : si elle est activée, ça veut dire que dès que le personnage n'est plus animé, tu changes sa vue d'attente. Tu suis ? Tiens-nous au courant ! _________________ 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 ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mer 13 Mar 2013 - 20:47 | |
| Je n'ai pas réussi avec les timers. Je comprends le principe de ceux-ci à part une chose : Si SetTimer(x, 0) configure un timer et si IsTimerExpired permet de savoir si celui-ci a expiré, quelle commande permet de démarrer le timer ? Cela dit, j'ai réussi ce que je voulais en m'y prenant différemment : CptChangeView et RandomViewBernard sont deux variables globales initialisées à 0. - Code:
-
function repeatedly_execute() { CptChangeView++; if (CptChangeView == 1000) { if (RandomViewBernard == 0) { cBernard.SetIdleView(20, 20); RandomViewBernard = 1; CptChangeView = 0; } else { cBernard.SetIdleView(22, 20); RandomViewBernard = 0; CptChangeView = 0; } } } |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mer 13 Mar 2013 - 21:51 | |
| - Skippy92 a écrit:
- Si SetTimer(x, 0) configure un timer et si IsTimerExpired permet de savoir si celui-ci a expiré, quelle commande permet de démarrer le timer ?
SetTimer "démarre" le timer en fait. À vrai dire, tu as fait manuellement exactement ce que font les timers. Ces derniers ne servent qu'à économiser une variable et l'instruction qui consiste à l'incrémenter à chaque cycle de jeu. En bref, c'est un outil facultatif, et comme tu l'as trouvé, on peut très bien s'en sortir sans dès lors qu'on comprend bien comment marchent les cycles de jeu et les variables globales. _________________ 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 ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets Mer 13 Mar 2013 - 22:47 | |
| Merci Kitai pour tes explications. Je n'ai pas réussi à faire fonctionner SetTimer correctement, mais si la méthode manuelle marche et est correcte, je vais rester là-dessus. Merci. |
| | | Contenu sponsorisé
| Sujet: Re: [RESOLU] Plusieurs Walk-behinds area + Description objets | |
| |
| | | | [RESOLU] Plusieurs Walk-behinds area + Description objets | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |