| Animer un bouton au survol, comment ? | |
|
|
Auteur | Message |
---|
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Animer un bouton au survol, comment ? Jeu 20 Aoû 2015 - 21:13 | |
| Salut Si j'ai bien trouvé comment animer un bouton, je galère à faire comprendre à AGS que je veux qu'il s'anime uniquement au survol. J'ai bien essayé de bidouiller un truc avec .GetAtScreenXY mais ça ne donne rien. - Code:
-
function repeatedly_execute() { if (Boutton1.GetAtScreenXY(mouse.x, mouse.y)) { Boutton1.Animate(5, 0, 8, eRepeat); } En fait, quand je passe dessus, il ne s'anime pas. Par contre, dès que je ne suis plus sur le bouton là il s'anime. Un peu d'aide ne serait pas de refus |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Animer un bouton au survol, comment ? Jeu 20 Aoû 2015 - 21:47 | |
| EDIT: mon code brute force est pourrie est périmé, voir plus bas. Arrives-tu as t'en sortir avec ça ? Un bouton, 3 sprites (27, 28 et 29), délai de 4. - Code:
-
// put anything you want to happen every game cycle in here function repeatedly_execute() { mx = mouse.x; my = mouse.y; // [...] // Gui animation GUIControl *theControl = GUIControl.GetAtScreenXY(mx, my); if (theControl == bInvMenu) { if(bInvMenu.NormalGraphic == 27) { bInvMenu.NormalGraphic = 28; CountDown = 4; } else if (bInvMenu.NormalGraphic == 28 && CountDown !=0) { CountDown--; } else if (bInvMenu.NormalGraphic == 28 && CountDown ==0) { bInvMenu.NormalGraphic = 29; } } else { if(bInvMenu.NormalGraphic == 29) { bInvMenu.NormalGraphic = 28; CountDown = 4; } else if (bInvMenu.NormalGraphic == 28 && CountDown !=0) { CountDown--; } else if (bInvMenu.NormalGraphic == 28 && CountDown ==0) { bInvMenu.NormalGraphic = 27; } } }
Dernière édition par Billbis le Jeu 20 Aoû 2015 - 21:55, édité 1 fois |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Animer un bouton au survol, comment ? Jeu 20 Aoû 2015 - 21:49 | |
| Edit: j'avais mal lu ton message. Ton script marche, c'est juste que tu réinitialise l'animation en continu lorsque la souris est sur le bouton, et que tu ne l’arrête pas lorsque la souris par. D’où l'effet obtenu . Faut ruser du coup. |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Animer un bouton au survol, comment ? Jeu 20 Aoû 2015 - 21:53 | |
| Quelque chose comme ça ? - Code:
-
monBool = true; function repeatedly_execute() { if (Boutton1.GetAtScreenXY(mouse.x, mouse.y) && monBool) { Boutton1.Animate(5, 0, 8, eRepeat); monBool = false; } else if (!Boutton1.GetAtScreenXY(mouse.x, mouse.y) && !monBool) { Boutton1.NormalGraphic = 25; monBool = true; } }
Dernière édition par Billbis le Ven 21 Aoû 2015 - 16:19, édité 1 fois |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Animer un bouton au survol, comment ? Ven 21 Aoû 2015 - 7:32 | |
| Ah mais bien sûr ! Merci Billbis Effectivement, mon raisonnement pêchait, car en restant sur le button, l'animation recommençait en boucle sur la première image et elle n'était pas arrêtée ensuite. Dans ma tête je voyais ça comme un mouseover mais ce n'est pas le cas. J'ai bien compris à présent |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Animer un bouton au survol, comment ? Ven 21 Aoû 2015 - 14:34 | |
| Juste par curiosité, est-ce que Boutton1.GetAtScreenXY(mouse.x, mouse.y) retourne true lorsque la souris survole Boutton1 et false autrement ? Car j'ai toujours utilisé cette commande de façon statique moi : Button.GetAtScreenXY(mouse.x, mouse.y) == Boutton1 _________________ 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 ! |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Animer un bouton au survol, comment ? Ven 21 Aoû 2015 - 14:45 | |
| Oui, je me demande la même chose... GetAtScreenXY est défini comme static par le manuel. |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Animer un bouton au survol, comment ? Ven 21 Aoû 2015 - 16:13 | |
| Static ? Kézako ? Sinon, ça ne fonctionne pas avec ton code Billbis ( que j'ai corrigé, tu avais mis "mon bool", c'était bien "monBool" qu'il fallait ?) J'ai le message suivant (pour la ligne if) : Type mismatch: cannot convert 'GUIControl*' to 'bool'. |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Animer un bouton au survol, comment ? Ven 21 Aoû 2015 - 16:22 | |
| Oui, c'est bien monBool, et non mes boules. Ton problème et le static, c'est la même chose chef. - Code:
-
monBool = true; function repeatedly_execute() { mx = mouse.x; my = mouse.y; GUIControl *theControl = GUIControl.GetAtScreenXY(mx, my); if (theControl == Button1 && monBool) { Boutton1.Animate(5, 0, 8, eRepeat); monBool = false; } else if (theControl != Button1 && !monBool) { Boutton1.NormalGraphic = 25; monBool = true; } } PS: pour en savoir plus sur le static. |
|
| |
Contenu sponsorisé
| Sujet: Re: Animer un bouton au survol, comment ? | |
| |
|
| |
| Animer un bouton au survol, comment ? | |
|