Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Jouer une animation à partir d'une frame/vignette déterminée

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: 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 ?

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: 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 sourire

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: 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.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: 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 !  grand sourire

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).

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: 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?

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Jouer une animation à partir d'une frame/vignette déterminée   Sam 21 Déc 2013 - 13:12

Ah oui je vois !

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: 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.

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Jouer une animation à partir d'une frame/vignette déterminée   Aujourd'hui à 17:21

Revenir en haut Aller en bas
 
Jouer une animation à partir d'une frame/vignette déterminée
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Clé wifi max,Comprends rien...
» Progresser sans changer sa façon de jouer
» Bignozz, terre/multi, suivi du perso...[niv194 le 3/05/11]
» Jouer avec une sauvegarde d'un autre PC
» [Animation] 5 Centimeters per second

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: