Page 1 of 3

[Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 19:28
by KaL.K
Bonsoir à tous,
mettant mis à la programmation en TI BASIC depuis cette année (l'achat de ma TI-84+ :#love#: ) et possédant les bases (pas encore avec l'écran graphique) une question/defi ma été posé par un ami : faire clignoter du text (exemple : dans de nombreux jeux aracades ou le jeux demande "Insert coins" et le text clignote). Ayant un peut réflechis voici ce que j'ai trouvé :
Code: Select all
:ClrHome
:0-X
:While X=0
:Text(32,28,"Press ENTER" /* Remarquez que j'ai mis Text( mais on peut
:Text(32,28,"Press ENTER"     très bien utiliser Disp ou Output( et qu'il est
:Text(32,28,"Press ENTER"     écrit plusieurs fois sinon le text
:Text(32,28,"Press ENTER"     clignote trop vite et est presque
:Text(32,28,"Press ENTER"     transparent. *
:Text(32,28,"Press ENTER"
:Disp"
:Disp" // Disp est mis plusieurs fois pour ralentir l'intervalle entre l'affichage et la suppression.
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:Disp"
:ClrHome
:End

Notez que c'est un code très ... comment dire ... très maladroit. Enfin cela donne le résultat à peut près voulu. Donc si quelqu'un d'autre sait comment le faire avec un code peut être plus optimisé qu'il partage la solution :#gni#: .
Merci :#zen#:

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 19:39
by Ciwtron
Essaie de faire une boucle pour ralentir la calculatrice, et donc la fréquence de clignotement.

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 19:56
by KaL.K
C'est à dire (exemple?) ?

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 20:07
by Ciwtron
ben...
ça dépent de ta calculatrice: mais un truc du genre

for I,1,var
x=2x
next I

plus tu augmente var, plus le clignotement sera long.

Ça donnerai

Code: Select all
:ClrHome
:0-X
:While X=0
:for I,1,var
:Text(32,28,"Press ENTER"
:next I
:for I,1,var2
:Disp"
:next I
:ClrHome
:End

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 20:23
by Emyl
ou sinon tu peux utiliser la fonction randBin (dans le catalogue math)
Code: Select all
:ClrHome
:0-X
:Repeat X
:Text(32,28,"Press ENTER"
:randBin(valeur,0
:Disp"
:ClrHome
:End

tu peux remplacer while x=0, par repeat x, c'est a dire que la boucle se realise tant que x n'a pas de "valeur" (ie different de 0)

pour info, la valeur que tu mets dans randBin définie la durée d'attente. Ne dépasse pas 100, sinon ça fait vraiment long (et impossible à stopper :;): )

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 20:49
by KaL.K
Emyl wrote:ou sinon tu peux utiliser la fonction randBin (dans le catalogue math)
Code: Select all
:ClrHome
:0-X
:Repeat X
:Text(32,28,"Press ENTER"
:randBin(valeur,0
:Disp"
:ClrHome
:End

tu peux remplacer while x=0, par repeat x, c'est a dire que la boucle se realise tant que x n'a pas de "valeur" (ie different de 0)

pour info, la valeur que tu mets dans randBin définie la durée d'attente. Ne dépasse pas 100, sinon ça fait vraiment long (et impossible à stopper :;): )


Merci c'est presque ça sauf que le texte ne disparait pas assez longtemps (blink trop rapide). Y a-t-il un moyen de fixer le problème ?

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 20:53
by critor
Petite précision:

Avec ton code, tu fais clignoter tout l'écran.

Ce n'est pas grave si tu n'as que le message "Press Enter" d'affiché.

Mais peut-être un jour auras-tu besoin de faire clignoter certains messages et pas d'autres.


Je propose:
Code: Select all
:0-X
:Repeat X
:Text(32,28,"Press ENTER"
:randBin(valeur,0
:Text(32,28,"                                          "
:End

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 20:54
by Ciwtron
Comme ça:
Code: Select all
:ClrHome
:0-X
:Repeat X
:Text(32,28,"Press ENTER"
:randBin(valeur,0
:Text(-1,32,28,"
:randBin(valeur2,0
:ClrHome
:End


Edité grâce à Critor2000

Re: [Résolu]Text clignotant

Unread postPosted: 30 Nov 2009, 21:08
by Marco
Ciwtron wrote:ben...
ça dépent de ta calculatrice: mais un truc du genre

for I,1,var
x=2x
next I

plus tu augmente var, plus le clignotement sera long.

Ça donnerai

Code: Select all
:ClrHome
:0-X
:While X=0
:for I,1,var
:Text(32,28,"Press ENTER"
:next I
:for I,1,var2
:Disp"
:next I
:ClrHome
:End

Certainement la méthode la plus simple à ces modifications près :
Aucun calcul dans la boucle for et j'écrirais :
Code: Select all
:ClrDraw
:While 1
:Text(32,28,"Press ENTER
:For(I,1,T
:End
:Text(-1,32,28,"                    //Avec autant d'espaces qu'il faut pour effacer le "Press ENTER" les espaces étant ici larges grâce au -1
:For(I,1,T
:End
:End

T est à fixer au départ. Il est proportionnel à la durée de temporisation donc facilement réglable.

Re: [Résolu]Text clignotant

Unread postPosted: 01 Dec 2009, 20:02
by KaL.K
Marco t'a méthode marche très bien sauf que j'ai aussi besoin de mettre un autre texte qui lui ne clignote pas, car avec ta méthode tout l'écran blink. Solution ?
Mais peut-être un jour auras-tu besoin de faire clignoter certains messages et pas d'autres.

C'est justement se dont j'ai besoin mais je n'arrive pas à ralentir le clignotement même avec la technique de Ciwtron (je mis prend sûrement mal...).
Merci en tout cas.