Suite aux différents échanges que j'ai eu avec
certains d'entre vous, je vous propose une petite présentation
du Lua sur Nspire via un petit code assez simple.
Depuis la version de la Rom 3.1, la Nspire supporte officiellement la programmation
en Lua et depuis la 3.2 met à votre disposition un éditeur intégré au logiciel.
La Nspire fonctionne avec un système de classeurs,qui contiennent une ou plusieurs pages,
ces page pouvant contenir une ou plusieurs applications.
Après avoir créer une page dans un classeur via le logiciel, on va dans le menu Insertion et
l'on selectionne insérer un script, on accéde alors à l'éditeur de scripts et l'on peut
entrer son code Lua.
Pour utiliser le programme Lua, il suffit ensuite d'ouvrir le classeur et de visualiser la page
contenant le script (votre classeur peut contenir uniquement cette page) vous accéder alors directement
au programme.
Il suffit ensuite d'envoyer le classeur à la calto depuis le logiciel.
Je vous propose un petit programme qui affiche un message à l'écran et vous permet de le déplacer
dans les quartre direction via les touches de 'direction".
Une pression sur "ENTER" ramène le message à sa position d'origine.
Voici le code:
Code : Tout sélectionner
xdep,ydep=0,0
xmodif,ymodif=xdep,ydep
function on.paint(gc)
gc:setColorRGB(0,0,0)
gc:setFont("serif","b",10)
gc:drawString("LUA sur Nspire",xmodif,ymodif,"top")
end
function on.arrowKey(k)
if k=="up" then
ymodif=math.max(ymodif-4,0)
elseif k=="down" then
ymodif=math.min(ymodif+4,150)
elseif k=="left" then
xmodif=math.max(xmodif-4,0)
else
xmodif=math.min(xmodif+4,300)
end
platform.window:invalidate()
end
function on.enterKey()
xmodif,ymodif=xdep,ydep
platform.window:invalidate()
end
Lua est un langage événementiel, ici on gére 3 événements:
1) l'affichage
2) une pression sur une touche de direction
3) une pression sur ENTER
La première fois que le script est lancé, la fonction on.paint est exécutée :tout ce qui doit être affiché doit être
programmé dedans ou appelé depuis cette fonction et le paramétre "gc" doit être transmis obligatoirement.
Lorsque l'utilisateur presse une touche de direction, on.arrowKey est exécutée et le code de touche est transmis
via le paramètre "k", si il presse "ENTER" c'est on.enterKey qui est exécutée.
Enfin pour que l'affichage soit mis à jour (on.paint), c'est le programmeur qui doit déclencher l'événement grâce à
l'instruction "platform.window:invalidate()" tout l'écran est alors redessiné.
Voilà faites moi part de votre impression et si vous avez des questions j'y répondrai volontier dans la limite
de mes modestes connaissances.





