| Répéter une action... | |
|
|
Auteur | Message |
---|
shilom C'est quoi la Tasse Bleue ?
Nombre de messages : 17
Date d'inscription : 07/11/2021
| Sujet: Répéter une action... Sam 18 Déc 2021 - 18:04 | |
| Bonsoir à tous!
J'ai besoin de vos lumières. J'aimerai savoir comment répéter un mouvement ou une action? Je m'explique, admettons que j'ai besoin de faire faire un mouvement de va et vient à un poisson mort qui flotte sur l'eau, donc dans se cas là il s'agit du déplacement d'un objet inanimé qui se déplace d'un point A à un point B puis de B vers A ou faire marcher un perso d'un point A à un point B et vice versa et répéter cette action indéfiniment? D'avance merci.
Shilom vous salue!!! |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Répéter une action... Sam 18 Déc 2021 - 21:39 | |
| Salut, Tu devras utiliser la fonction room_RepExec() de ta pièce pour contrôler les mouvements de l'objet en arrière-plan. Mettons que tu veux qu'un personnage marche de (x1,y1) à (x2,y2), puis retourne à (x1,y1), etc. en boucle. Tu pourrais faire quelque chose comme ça dans le script de ta pièce : - Code:
-
#define N_POINTS 2 int Xs[N_POINTS]; int Ys[N_POINTS]; int boucle;
// La fonction de l'événement de pièce "Repeatedly execute" function room_RepExec() { if (!cPersoArrierePlan.Moving){ cPersoArrierePlan.Walk(Xs[boucle%N_POINTS], Ys[boucle%N_POINTS], eNoBlock); boucle++; } }
// La fonction de l'événement de pièce "Enters room before fade-in" function room_Load() { boucle = 0; Xs[0] = 100; // Première destination : Ys[0] = 50; // (100,50) Xs[1] = 250; // Deuxième destination : Ys[1] = 120; // (250,120) } _________________ 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 ! |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Répéter une action... Dim 19 Déc 2021 - 8:02 | |
| Si la zone n'est pas très grande, tu peux aussi simuler le déplacement directement en faisant une animation avec les sprites de l'objet Poisson, et en lançant l'animation avec l'option eRepeat Sinon, perso, quand j'avais besoin de faire ça dans un de mes jeux, j'avais utilisé un code dans le genre : - Code:
-
//Before fade-in
oPoisson.Move(x1, y1, eNoBlock);
//Repeatedly Execute
if (oPoisson.X >= x1){ oPoisson.Move(x2, y2, eNoblock); }
if(oPoisson.X <= x2){ oPoisson.Move(x1, y1, eNoblock) }
|
|
| |
shilom C'est quoi la Tasse Bleue ?
Nombre de messages : 17
Date d'inscription : 07/11/2021
| Sujet: Re: Répéter une action... Lun 20 Déc 2021 - 15:12 | |
| Super, merci, je vais essayer ça dés que possible. Du coup, je me pose la question, comment gérer la vitesse de déplacement d' un objet? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Répéter une action... Lun 20 Déc 2021 - 15:58 | |
| Pour les objets, tu peux passer un troisième paramètre à Move, après la coordonnée Y (d'ailleurs dans l'exemple de @Shai-la il faudrait en fait passer une valeur pour la vitesse avant eNoBlock dans Move, sinon ça marchera pas). Pour les personnages, tu peux utiliser la fonction SetWalkSpeed_________________ 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 ! |
|
| |
shilom C'est quoi la Tasse Bleue ?
Nombre de messages : 17
Date d'inscription : 07/11/2021
| Sujet: Re: Répéter une action... Sam 1 Jan 2022 - 9:59 | |
| Génial! ça fonctionne à merveille... Merci à vous deux, vous avez été très complémentaire dans vos réponses.
Shilom vous salue! |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Répéter une action... Dim 2 Jan 2022 - 7:39 | |
| Super !! |
|
| |
Contenu sponsorisé
| Sujet: Re: Répéter une action... | |
| |
|
| |
| Répéter une action... | |
|