| animé des personnages sans mettre le jeux en pause | |
|
|
Auteur | Message |
---|
Yagami Raito Adepte de la Grande Tasse Bleue
Nombre de messages : 87
Date d'inscription : 04/09/2007
| Sujet: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 13:45 | |
| Bonjour !
Voila ma question, je voudrai rendre mes rooms plus vivantes, et pour ca il me faut animer certains personnages.
Hors si j'anime mes personnages, a chaques fois que l'animation va se jouée, le jeux se mettra en pause le temps que l'animation s'acheve.
Idem pour faire parler un personnage, par exemple j'ai un ivrogne qui ronque dans un cannivaux, et de temps en temps, je voudrai que des ZZzzzz apparaissent mais egalement sans mettre le jeu en pause.
Help ^_^ |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 14:35 | |
| Pour les animations, il faut mettre en "eNoblock" (pour pas mettre le jeu en pause). Et pour faire parler les persos (sans bloquer), c'est avec la commande Saybackground. Pour faire des ZZZzz de temps en temps, tu peux utiliser un timer qui lance un "cIvrogne.Saybrackground("ZZZzzz")" de temps en temps. |
|
| |
Yagami Raito Adepte de la Grande Tasse Bleue
Nombre de messages : 87
Date d'inscription : 04/09/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 14:55 | |
| Je sais je suis casse bonbon mais :
Un timer fonctionne comment au juste ? ^_^ |
|
| |
LUniqueDan Cliqueur Amateur
Nombre de messages : 211
Age : 49
Date d'inscription : 05/07/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 16:05 | |
| Pour debuter un TimerAGS possede 20 timers numérotés de 1 à 20 qui peuvent etre utilisé simultanément. - Code:
-
SetTimer(1,80); //--> debute le timer #1 pour 80 cycles de jeu (2 secondes environ)
Pour verifier si le temps est venuHabituellement le code c'est dans le Repeatedly Execute d'une Room (mais ca peut etre dans celui du main script, ou dans les different Repeatedly_execute_always qui sont cachés). - Code:
-
if (IsTimerExpired(1) == vrai) { player.SayBackground("ZZZZZZ"): SetTimer(1,80); // recommence }
Arrêter un Timer avant que ca exploseY'a bcp de cas où c pratique : pour pas que le ronfleur qui scie du bois continu de faire des ZZZZ dans la face du heros quand il est reveillé : Passer la valeur 0. - Code:
-
SetTimer(1,0);
|
|
| |
Yagami Raito Adepte de la Grande Tasse Bleue
Nombre de messages : 87
Date d'inscription : 04/09/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 16:29 | |
| Donc pour ce qui est de l ivrogne qui siffle son ZZzzz c'est parfait ! Ca marche au poil ! Par contre j'ai un soucis avec l'animation. j'ai entré ce code dans une boucle mais cela ne veux pas marché : - Code:
-
if (IsTimerExpired(2) == true) { cCatinn.LockView(6); cCatinn.Animate(0, 1, eOnce, eNoBlock); cCatinn.UnlockView(); SetTimer(2,80); } Help ? ^^ |
|
| |
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: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 19:43 | |
| C'est vrai que c'est assez énervant les fonctions eBlock / EnoBlock d'AGS. Pour Katura Colonisation, j'ai été obligée de mettre eBlock pour faire se déplacer les colons à chaque fois, sinon ils ne bougeaient pas. Avec pour conséquence le jeu en pause à chaque fois... pénible. J'aurais aimé plein de colons qui marchent partout dans le village, mais je n'ai pas réussi. |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 21:41 | |
| Quand on fait une animation en "eNoBlock", il faut attendre que l'animation se termine avant de faire un "UnlockView()". Sinon, çà donne rien. Et là, si on veut pas bloquer le jeu, il faut ruser avec les timers. J'ai eu le problème, sur l'animation de MashinChoz, dans la 1ère room, quand le garde glisse, que son épée s'envole et que Puntie fait un pas sur la droite pour eviter de se la prendre. Ce sont 3 animations dirérentes en casi simultané. Bonjour les réglages ! Enfin, comme c'etait qu'une sequence, j'ai pu m'en sortir avec des "wait" avant de declancher les anims sucessives. Dans ton cas (et celui de Shai-là), ben c'est de la gestion de timer, et bon courage |
|
| |
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: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 22:21 | |
| Le problème c'est que j'avais déjà utilisé presque la totalité des timers pour gérer les autres événements du jeu, alors si je devais en utiliser également pour gérer les mouvements... j'en aurais jamais eu assez avec 20 ! :evil: |
|
| |
Yagami Raito Adepte de la Grande Tasse Bleue
Nombre de messages : 87
Date d'inscription : 04/09/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Ven 23 Nov 2007 - 23:37 | |
| Comme quoi on se rends tres vite compte des limites d'AGS. |
|
| |
LUniqueDan Cliqueur Amateur
Nombre de messages : 211
Age : 49
Date d'inscription : 05/07/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 1:24 | |
| Il fut dit que : Lorsque quelqu'un appel un UnlockView() sur un perso/objet etc... dont la view n'est pas 'Lock' (ou déjà unlock... c la même chose) : ca ne fait pas de bug. Donc selon les saintes écritures de la tasse bleue : - Code:
-
if (IsTimerExpired(2) == true) { cCatinn.UnlockView(); // Pour etre sur
cCatinn.LockView(6); cCatinn.Animate(0, 1, eOnce, eNoBlock); SetTimer(2,80); }
--Reglera quelques problèmes Avant de blasphémer à nouveau envers AGS (et c'est un bûcheron québecois qui parle) : - Code:
-
if(cPerso.animating == false) - Code:
-
if(cPerso.frame>1) - Code:
-
if(cPerso.moving == false) - Code:
-
if(cPerso.speaking == false) Sont des choses à essayer. Programmez en paix mes frères. :cheers:
Dernière édition par le Sam 24 Nov 2007 - 15:58, édité 1 fois |
|
| |
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: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 7:58 | |
| J'avais essayé ces trucs, ça ne marchait pas des masses. J'ai dû bidouiller avec - Code:
-
oBatiment.Graphix = x; pour déterminer à quel moment l'animation est finie, et je changeais d'image (numéro différent mais même dessin) selon que c'était en activité ou non. |
|
| |
LUniqueDan Cliqueur Amateur
Nombre de messages : 211
Age : 49
Date d'inscription : 05/07/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 15:52 | |
| - Tes durées de constructions sont les mêmes? + meme nbr de frame par batiment? |
|
| |
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: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 17:11 | |
| |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 19:03 | |
| j'ai pas essayé, mais je pense qu'on peut facilement ajouter des timers... Au niveau d'une room, par exemple, il suffit d'une variable "montimer" qu'on initialise à 0 en entrant dans la room. Et dans le repeatdly, on fait un "montimer++;" ,suivi d'un test "if (montimer > 80) {" (80 cycles pour 2 sec) |
|
| |
LUniqueDan Cliqueur Amateur
Nombre de messages : 211
Age : 49
Date d'inscription : 05/07/2007
| Sujet: Re: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 20:31 | |
| Shai-LaC'est un secret. Asraroth :cheers: Dans le Repeatedly_Execute_Always (sinon quand une action blocante est en fonction ailleur, il n'incrémentera pas) Le meilleur truc c encore d'adjoindre aux faux timers un vrai timer si l'attente se calcul en secondes: dans le style : - Code:
-
if (isTimerExpired(1)) { // Recherche et incremente les Faux_Timers actifs // Verifie si les faux timers actifs sont Ok si oui mettre a vrai la variable qui leur est adjointe. SetTimer(1,40); }
Mais pour être honnete, le nombre de jeux qui en ont eut vraiment besoin est très très bas. En fait, le seul a ma connaissance, après Colonisation c : http://www.escapistmagazine.com/content/games/yahtzee/artoftheftEt encore, je me le demande. |
|
| |
MilesMando Cliqueur Amateur
Nombre de messages : 310
Age : 43
Localisation : Paris
Date d'inscription : 08/08/2006
| Sujet: Re: animé des personnages sans mettre le jeux en pause Sam 24 Nov 2007 - 21:11 | |
| - Asraroth a écrit:
- dans la 1ère room, quand le garde glisse...
Hum, marrant ct' anectode Trés interressant ce sujet , à parcourir! - Dan a écrit:
- Lorsque quelqu'un appel un UnlockView() sur un perso/objet etc... dont la view n'est pas 'Lock' (ou déjà unlock... c la même chose) : ca ne fait pas de bug.
Si l'un de vous réussi un de ces jours à contourner les limites evoquées , ça m'interresse biensur ! |
|
| |
Contenu sponsorisé
| Sujet: Re: animé des personnages sans mettre le jeux en pause | |
| |
|
| |
| animé des personnages sans mettre le jeux en pause | |
|