| Faire bouger des persos en fond pendant que le joueur joue | |
|
|
Auteur | Message |
---|
Cendar le Rouge C'est quoi la Tasse Bleue ?
Nombre de messages : 31
Age : 44
Localisation : Genève
Date d'inscription : 25/03/2010
| Sujet: Faire bouger des persos en fond pendant que le joueur joue Lun 14 Fév 2011 - 18:05 | |
| Bonjour à tous ! Ca fait un petit moment que je ne m'étais pas pointé dans ce forum ! : J'ai un petit problème qui ne devrait pas être insurmontable (enfin, je l'espère), mais je dois être une vraie daube. Je m'explique : Je cherche à faire marcher en boucle un perso derrière une console de commande (comme s'il faisait les 100 pas) pendant que le joueur se balade et fait d'autres trucs dans la "room" j'imagine qu'il faut jouer avec la commande "while" et éventuellement une variable, mais je n'arrive pas à trouver comment faire ça. ça fait des heures que je cherche une solution un peu partout dans le forum et le manuel d'AGS mais là j'en peux plus, je fais appel à vos cerveaux pour m'aider ! Help ! |
|
| |
Benjiman33 Cliqueur Amateur
Nombre de messages : 312
Age : 38
Localisation : Bordeaux-Toulouse
Date d'inscription : 27/07/2007
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Lun 14 Fév 2011 - 20:32 | |
| Salut! j'ai une solution pour toi, peut être pas la meilleure mais qui marche:
Quand tu charges ta room tu dois définir un timer (cliques sur l'éclair jaune "Event" de ta room et sur Enters before fade-in:
Tu crée alors ton timer: function room_Load() { SetTimer(1, 50); (1 correspond au numéro du compteur, et 50 à la période de répétition que tu veux) }
ensuite tu sélectionne l'event Repeatdly execute et tu tapes: function room_RepExec() { if (IsTimerExpired(1) == true) { cPerso.Animate.... (là tu tapes ce que tu veux faire en arrière plan) SetTimer(1,50);} ( et tu réinitialise le compteur) } |
|
| |
Cendar le Rouge C'est quoi la Tasse Bleue ?
Nombre de messages : 31
Age : 44
Localisation : Genève
Date d'inscription : 25/03/2010
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Lun 14 Fév 2011 - 21:08 | |
| Cool j'ai réglé le problème de la boucle grâce à toi : : Par contre j'ai un deuxième problème... J'aimerais que mon perso en arrière plan fasse un aller-retour. Le soucis c'est que si je marque : function room_RepExec() { if (IsTimerExpired(1) == true){ cTechMach1.Walk(530, 148, eNoBlock, eWalkableAreas); cTechMach1.Walk(469, 148, eNoBlock, eWalkableAreas); SetTimer(1, 50); } } Le perso en question execute les deux ordres en même temps et reste sur place... Comment lui dire de revenir à sa position de départ seulement une fois arrivé en 530,148 ? ( j'espère être assez clair ) |
|
| |
Cendar le Rouge C'est quoi la Tasse Bleue ?
Nombre de messages : 31
Age : 44
Localisation : Genève
Date d'inscription : 25/03/2010
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Lun 14 Fév 2011 - 21:13 | |
| Lol, c'est bon j'ai trouvé tout seul !
if (IsTimerExpired(1) == true){ cTechMach1.Walk(530, 148, eNoBlock, eWalkableAreas); SetTimer(2, 50); } if (IsTimerExpired(2) == true){ cTechMach1.Walk(469, 148, eNoBlock, eWalkableAreas); SetTimer(1, 50); }
J'ai utilisé un deuxième Timer.
Merci pour tout !
Si quelqu'un a une autre solution, n'hésitez pas ! |
|
| |
Benjiman33 Cliqueur Amateur
Nombre de messages : 312
Age : 38
Localisation : Bordeaux-Toulouse
Date d'inscription : 27/07/2007
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Mar 15 Fév 2011 - 6:38 | |
| Petite remarque, s'il fait les deux actions en même temps c'est que le timer que tu as fixé n'est pas assez long. Essaye de faire un: SetTimer(1, 200); Et remplace 200 selon la durée que tu souhaites entre les deux mouvements |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Mar 15 Fév 2011 - 8:46 | |
| - Benjiman33 a écrit:
- Petite remarque, s'il fait les deux actions en même temps c'est que le timer que tu as fixé n'est pas assez long. Essaye de faire un:
SetTimer(1, 200); Et remplace 200 selon la durée que tu souhaites entre les deux mouvements Faux : : Son perso marche en eNoBlock, cela signifie que le script continuera de s'exécuter sans attendre que le perso ait atteint sa destination (ou simplement fini de marcher). Cela est bien sûr nécessaire pour ne pas bloquer le jeu, histoire que le joueur puisse vaquer à ses occupations. Mais du coup, le personnage n'aura pas le temps d'accomplir son premier déplacement que le script exécutera le deuxième déplacement, d'où l'effet de "sur-place". C'est un problème récurrent que de devoir gérer la fin des déplacements des personnages "en fond". Il existe bien une fonction Character.AddWaypoint pour spécifier au personnage de se déplacer à un certain point une fois qu'il aura fini son premier déplacement, mais le problème c'est que cette commande ignore les Walkable Areas (va savoir pourquoi il n'y a pas une option...). Après il est toujours possible de coder rapidement un module qui fasse la même chose, mais qui n'ignore pas les walkable areas... avis aux amateur : : _________________ 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 ! |
|
| |
Benjiman33 Cliqueur Amateur
Nombre de messages : 312
Age : 38
Localisation : Bordeaux-Toulouse
Date d'inscription : 27/07/2007
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Mar 15 Fév 2011 - 11:07 | |
| ha oui exact, désolé j'ai parlé trop vite |
|
| |
fabmin C'est quoi la Tasse Bleue ?
Nombre de messages : 31
Age : 58
Localisation : Paris
Date d'inscription : 09/03/2011
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Ven 11 Mar 2011 - 19:44 | |
| Tout cela me semble pour le moment un langage bien surréaliste. Mais bon, ne nous décourageons pas. Je pense que quand je maîtriserais le soft, je dirais: -Evidemment qu'on fait comme ça (j'suis p'tête un peu optimiste là). |
|
| |
Perlinpinpin C'est quoi la Tasse Bleue ?
Nombre de messages : 5
Date d'inscription : 21/03/2011
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue Lun 21 Mar 2011 - 13:20 | |
| - fabmin a écrit:
- Tout cela me semble pour le moment un langage bien surréaliste. Mais bon, ne nous décourageons pas. Je pense que quand je maîtriserais le soft, je dirais:
-Evidemment qu'on fait comme ça (j'suis p'tête un peu optimiste là). Ahah, oui, c'est exactement ce que j'ai pensé en lisant la discu. Patience et longueur de temps... Il faut bien débuter un jour. |
|
| |
Contenu sponsorisé
| Sujet: Re: Faire bouger des persos en fond pendant que le joueur joue | |
| |
|
| |
| Faire bouger des persos en fond pendant que le joueur joue | |
|