π
<-

Premier programme : un texte qui bouge

Pour TI-Nspire OS 3.0 ou ultérieur.

Premier programme : un texte qui bouge

Unread postby tobiasBora » 21 Oct 2012, 10:28

Bonjour !

Voilà : je n'ai jamais programmé en lua, j'essaye donc de faire de petits programmes basics (euh non lua :p ), mais je bloque sur quelque chose de tout simple : faire un texte qui se déplace.

Voilà le code que j'ai écris pour le moment :
Code: Select all
i=0
function on.construction()
   i=0
end

function on.paint(gc)
   gc:setFont("sansserif", "b", 12)
   gc:setColorRGB(158, 5, 8)
   gc:drawString(i, 0, 20+i)
end

for i=0, 180
do
   platform.window:invalidate()
end

Déjà je suis obligé de mettre le i=0 avant la fonction construction car sinon j'ai une erreur me disant que i vaut nil... Comment se fait-il que le mettre dans la fonction on.construction ne suffise pas ?

Ensuite, ce code ne fonctionne pas, il ne m'affiche que 0 à la première ligne, mais c'est comme si l'affichage ne s'actualisait pas. Voyez vous pourquoi ?

Merci d'avance,

Tobias.
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Premier programme : un texte qui bouge

Unread postby Adriweb » 21 Oct 2012, 10:33

En fait, tu cherches à gérer toi-même l'actualisation de l'écran (invalidate -> c'est juste un flag de rafraichissement), alors qu'il est beaucoup plus "simple" (tu verras quand tu auras l'habitude) d'utiliser ce que l'API te propose directement, le timer :

Code: Select all
i=0
timer.start(0.05) -- va déclencher la fonction on.timer toues les 0.5

function on.timer()
    if i < 180 then i=i+1 else timer.stop() end
    platform.window:invalidate()
end

function on.paint(gc)
    gc:setFont("sansserif", "b", 12)
    gc:setColorRGB(158, 5, 8)
    gc:drawString(i, 0, 20+i, "top")  -- (le top (optionnel) est l'alignement vertical par rapport à la coord y)
end


Pas testé mais ca devrait marcher :)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Premier programme : un texte qui bouge

Unread postby tobiasBora » 21 Oct 2012, 11:01

Parfait ça marche nickel, merci beaucoup (et l'astuce du top est sympa aussi) !

Par contre, comment se fait-il qu'ici on ne déclare rien dans on.create/on.construction ? Dans mon esprit, lua lance en premier on.create, puis on.paint, puis lit le reste... Ce qui doit être faux car sinon ici ça planterait.

Pourrais tu m'expliquer rapidement quand on utilise on.construction et comment lua procède lors de l'exécution du fichier ?

Merci d'avance,

Tobias
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Premier programme : un texte qui bouge

Unread postby Levak » 21 Oct 2012, 11:54

Avant on.create avait un but précis, celui de pouvoir initialiser des variables qui dépendent de la plateforme (non initialisée dan le corps global du script). En 3.2, l'event on.create s'est vu replacé par on.construction contre toute attente pour quelque chose d'encore moins utile. C'est à dire que les astuces - et donc beaucoup de scripts lua écris en 3.1 - ne peuvent pas être portées en 3.2. Face à cela TI a visiblement préféré faire un "mode de compatibilité" avec platform.apiLevel = "1.0"
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Premier programme : un texte qui bouge

Unread postby tobiasBora » 21 Oct 2012, 12:45

Merci pour ta réponse. Donc en gros on.construction est la même chose en plus récent que on.create.

Si j'ai bien compris, on n'utilise on.create/on.construction SEULEMENT lorsque les variables que l'on initialise dépendent d'une plateforme en particulier ? Par exemple si une fonction n'existe que sur une console, on la déclare dans on.create ? Cela signifie que chaque plateforme à un nom de fonction d'initialisation différente ?

Et à quel moment est appelé pour la première fois la fonction on.paint ? Elle est appelée une fois que toute la partie du code en dehors des fonction à été exécutée ?

Et dans l'exemple que j'ai donné initialement, pourquoi est-ce que le programme plante ? (j'ai compris que ce n'est pas comme ça qu'il faut l'utiliser pour des raisons pratiques, mais je ne vois pas ce qui est faux au niveau formel)
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Premier programme : un texte qui bouge

Unread postby Adriweb » 21 Oct 2012, 13:15

Voila l'ordre que TI donne dans sa doc officielle :

(ici, tu es en apilevel "2.0" sauf si tu le force à "1.0")
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Premier programme : un texte qui bouge

Unread postby tobiasBora » 21 Oct 2012, 13:29

Merci !
Mais dans ce tableau, où se situerait le code tapé en dehors de toute fonction ? Car si il apparaît à la fin du tableau, le lancement de la fonction on.paint devrait planter vu que i n'est pas censé être initialisée.

Et quelqu'un voit il pourquoi mon programme initial est faux ?
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Premier programme : un texte qui bouge

Unread postby Levak » 21 Oct 2012, 13:32

tobiasBora wrote:Merci !
Mais dans ce tableau, où se situerait le code tapé en dehors de toute fonction ? Car si il apparaît à la fin du tableau, le lancement de la fonction on.paint devrait planter vu que i n'est pas censé être initialisée.

Et quelqu'un voit il pourquoi mon programme initial est faux ?


D'après tous tes posts j'en déduis que tu as loupé ça : http://www.inspired-lua.org/2011/05/lin ... s/?lang=fr
C'est légèrement différent et incomplet mais l'essentiel est là.

Toutes instruction écrite en dehors des fonctions sont évaluée en 1er, lors du parsing the Lua. A la fin du parsing, on.construction est appelé (assurant l'existence de toutes les fonctions). Après plusieurs appels, comme on.activate par exemple, on rentre dans une boucle évènementielle où on.paint et les évènements clavier et souris sont déclenchés suivant le contexte.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Premier programme : un texte qui bouge

Unread postby Adriweb » 21 Oct 2012, 13:41

C'est généralement pour ça qu'on utilise la fonction on.resize comme init (avec un flag en plus), au moins tout est prêt, y compris le width et height.
(On peut aussi faire une redéfinition du paint, mais bon)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Premier programme : un texte qui bouge

Unread postby tobiasBora » 21 Oct 2012, 13:49

Ah d'accord, c'est beaucoup plus clair maintenant ! J'étais en effet passé à côté de cette page...

Merci beaucoup pour votre aide !
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Next

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2053 utilisateurs:
>2036 invités
>10 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)