| Jouer une animation à partir d'une frame/vignette déterminée | |
|
|
Auteur | Message |
---|
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Jouer une animation à partir d'une frame/vignette déterminée Mar 17 Déc 2013 - 14:08 | |
| Imaginons que j'ai une animation qui se lance à un certain moment. Je veux réutiliser cette animation à un autre endroit, mais pas du début, simplement à partir de la vignette 10, par exemple. Il faut que je crée une fonction pour ça (si oui je crois voir à peu près comment faire) ou ce cas de figure est déjà prévu par AGS ? _________________ 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: Jouer une animation à partir d'une frame/vignette déterminée Mar 17 Déc 2013 - 19:55 | |
| Après une recherche rapide dans le manuel d'aide et sur le forum anglophone, il ne semble pas y avoir de méthode pré-programmée pour cela. Tant mieux si tu vois à peu près comment faire pour créer ta fonction. Moi la méthode qui me vient à l'esprit est de remplacer la fonction Animate par une autre qui gère les choses dans repeatedly_execute(_always ?) de façon à pouvoir lui passer des paramètres supplémentaires. _________________ 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: Jouer une animation à partir d'une frame/vignette déterminée Mar 17 Déc 2013 - 20:19 | |
| Voici ma solution dans l'état dans lequel elle se trouve, c'est à dire perfectible et pas finie. Pour être complet il faudrait ajouter un paramètre "vignette_fin" dont je ne pense pas avoir besoin personnellement (quoique). Deux inconvénients potentiels : impossibilité de rentrer un paramètre eNoBlock et par conséquent impossibilité de jouer une action en boucle (enfin ça serait possible mais de manière bloquante, donc ça ne me semble pas avoir d'intérêt, si une animation tourne en boucle en étant bloquante, on ne peut plus jouer). C'est peut-être pour contourner ces inconvénients que tu envisage de passer par repeatedly_execute, mais je ne vois pas comment (bon je n'y ai pas trop réfléchi j'avoue). - Code:
-
function AnimPartielle(this Character*, int sequence, int vignette_debut, int Delai, Direction Dir){ this.Loop = sequence; this.Frame = vignette_debut; ViewFrame *frame = Game.GetViewFrame(this.View, this.Loop, this.Frame); int Duree = (Delai + frame.Speed); Wait(Duree); if (Dir == eBackwards){ while(this.Frame > 0){ this.Frame = this.Frame - 1; ViewFrame *frame2 = Game.GetViewFrame(this.View, this.Loop, this.Frame); int Duree2 = (Delai + frame2.Speed); Wait(Duree2); } } else if (Dir == eForwards){ int NbVignettes = Game.GetFrameCountForLoop(this.View, this.Loop); while(this.Frame < (NbVignettes - 1)){ this.Frame = this.Frame + 1; ViewFrame *frame3 = Game.GetViewFrame(this.View, this.Loop, this.Frame); int Duree3 = (Delai + frame3.Speed); Wait(Duree3); } } } Cette solution fonctionne très bien (je crois), j'en suis plutôt content parce que c'est probablement ma plus belle fonction ( ), cela dit je m'attends à des critiques sur sa forme qui l'amélioreront probablement. Il y a notamment une redondance de la variable ViewFrame, je n'ai pas trouvé mieux parce qu'il fallait déterminer la vignette initiale avant le reste. PS : J'ai pu déterminer le temps d'affichage des vignettes grâce à ce que l'aide indiquait ici : - Citation :
- Le temps entre chaque vignette (frame) est calculé selon DELAI + VITESSE_DE_VIGNETTE, donc la durée d'affichage des vignettes est calculée par rapport à la vitesse générale.
L'aide d'AGS est vraiment un outil merveilleux _________________ 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: Jouer une animation à partir d'une frame/vignette déterminée Mer 18 Déc 2013 - 13:10 | |
| Dis dont, tu deviens sacrément avancé en AGS script. Je pense que tu peux mettre "Je peux apporter de l'aide niveau intermédiaire" maintenant ! En effet, pour passer en NoBlock, il faut jouer avec les repeatidly_execute. Donc si tu n'en as pas besoins, inutile de se casser la tête avec. |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Jouer une animation à partir d'une frame/vignette déterminée Mer 18 Déc 2013 - 13:18 | |
| - Billbis a écrit:
- Dis dont, tu deviens sacrément avancé en AGS script. Je pense que tu peux mettre "Je peux apporter de l'aide niveau intermédiaire" maintenant !
Cool ! J'ai validé le 2ème level, je passe au 3ème ! Cela dit je pense souvent aux bonds que tu ferais en regardant le bordel qu'est mon code dans son ensemble (cela dit quand j'ai commencé le jeu, mes compétences étaient bien moindres, j'apprends en même temps donc ça se justifie). _________________ 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.
|
|
| |
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: Jouer une animation à partir d'une frame/vignette déterminée Sam 21 Déc 2013 - 6:48 | |
| Ce ne serait pas beaucoup plus simple de créer une nouvelle loop? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Jouer une animation à partir d'une frame/vignette déterminée Sam 21 Déc 2013 - 11:49 | |
| Peut-être que valoulef veut stopper/reprendre l'animation à/depuis une vignette arbitraire. _________________ 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: Jouer une animation à partir d'une frame/vignette déterminée Sam 21 Déc 2013 - 13:12 | |
| |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Jouer une animation à partir d'une frame/vignette déterminée Sam 21 Déc 2013 - 13:45 | |
| Ouais mais même pas en fait (désolé j'ai pas le temps de développer je le ferai ce soir ! ) Edit du soir :Dans mon cas il serait peut-être un peu plus simple de refaire une view, mais pas tant que ça non plus car c'était pas si compliqué à faire finalement. Je ne peux pas refaire simplement une loop car il faut que cela corresponde à la bonne direction. Ensuite, quand je me dis quelque chose du genre "tiens ça serait pratique si cette fonction existait" j'aime bien essayer de la créer, d'abord pour voir si j'en suis capable, ensuite parce que c'est en faisant qu'on apprend, ensuite parce que d'un point de vue théorique, ça peut s'avérer utile à moi où à d'autres. Pour moi, j'ai déjà beaucoup de vues et je n'ai pas envie d'en créer des supplémentaires inutilement. En plus certaines animations sont assez fastidieuses à créer car les sprites ne s'enchaînent dans un ordre complexe. Pour d'autres, je pense que cette fonction peut servir pour ces cas là où pour d'autres cas, comme celui auquel à pensé Kitai. Mais encore une fois ma fonction est perfectible pour convenir à tout le monde. _________________ 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.
|
|
| |
Contenu sponsorisé
| Sujet: Re: Jouer une animation à partir d'une frame/vignette déterminée | |
| |
|
| |
| Jouer une animation à partir d'une frame/vignette déterminée | |
|