Un premier outil de développement LUA disponible !

Pour parler de la programmation en générale, partager des algorithmes...

Re: Un premier outil de développement LUA disponible !

Messagepar Invité le 01 Juin 2011, 10:26

Plusieurs de ces exemples sont maintenant disponibles, après un gros travail de remise en forme fait par Levak, qui a également ajouté des informations complémentaires, sur le site http://www.inspired-lua.org
http://www.inspired-lua.org/2011/05/4-predefined-variable-use-in-a-ti-nspire-document/?lang=fr
http://www.inspired-lua.org/2011/05/5-object-classes/?lang=fr
(Il m'avait bien sûr demandé mon accord)
Invité
 

Re: Un premier outil de développement LUA disponible !

Messagepar Christian le 01 Juin 2011, 16:33

Merci à tous les deux pour le gros travail de vulgarisation que vous faites.
En tout cas, tout ceci ouvre des perspectives extraordinaires.
Bien cordialement,
Christian
Avatar de l’utilisateur
Christian
 
Messages: 340
Inscrit le: 22 Août 2008, 13:42

Re: Un premier outil de développement LUA disponible !

Messagepar jppowers le 05 Juin 2011, 05:41

The scripting infrastructure in Nspire expects all text to be encoded in UTF-8. If you use an editor which saves text in UTF-8, then you can include accented characters in the comments and strings of your Lua scripts.
jppowers
 
Messages: 1
Inscrit le: 05 Juin 2011, 05:24

Re: Un premier outil de développement LUA disponible !

Messagepar Invité le 05 Juin 2011, 09:21

Thanks so much for this info ! I will edit the previous posts in order to include this point.
Using notepad++, it is very easy to choose the utf8 format, and then to be able to use accented characters.

Comme indiqué par jppowers, il est possible d'utiliser des caractères accentués, sous réserve de sauvegarder le fichier au format UTF8.
Ceci est par exemple très simple à faire avec Notepad++ (menu Format, Encoder en UTF8).
Invité
 

Re: Un premier outil de développement LUA disponible !

Messagepar jlbalas le 07 Juin 2011, 08:10

Bonjour à tous et toutes,
J'ai trouvé cela ce matin sur ticalc
http://education.ti.com/calculators/dow ... il?id=6840

Bonne journée
Avatar de l’utilisateur
jlbalas
 
Messages: 124
Inscrit le: 06 Août 2008, 19:16

Re: Un premier outil de développement LUA disponible !

Messagepar Invité le 07 Juin 2011, 20:38

Suite à une question posée dans un MP, voici un dernier exemple.
Cette fois ci, on utilise deux classes d'objets : des carrés, et des carrés mobiles (la seconde classe est donc une sous-classe de la première).
On peut créer un nombre "illimité" d'objets d'un simple clic, et tous ces objets se déplacent automatiquement à l'intérieur d'un rectangle (en rebondissant sur les bords).
Pour créer un nouveau carré mobile, il suffit de choisir une couleur (flèches vers le haut ou vers le bas), puis de cliquer à la position souhaitée.
On peut arrêter l'animation en appuyant sur ESC, et effacer les carrés déjà définis en appuyant sur la touche DELETE.

Code: Tout sélectionner
--------------------------------------------------------------------------------------
-- INITIATION A LUA
--------------------------------------------------------------------------------------
-- 1.   ON UTILISE ICI DEUX CLASSES D'OBJETS
--       LA SECONDE HERITE DES PROPRIETES DE LA PREMIERE...
-- 2.   ON UTILISE LA STRUCTURE DE TABLE POUR GERER UN
--       NOMBRE ARBITRAIRE D'OBJETS
-- 3.   UN TIMER POUR GERER L'ANIMATION
-- 4.   CE SCRIPT ILLUSTRE EGALEMENT L'UTILISATION D'UNE
--       BOUCLE FOR (INDEXEE PAR UNE VARIABLE OU PAR UNE TABLE)
--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------
-- Comment utiliser ce Script ?
--------------------------------------------------------------------------------------   
-- Merci d'excuser l'absence d'accents dans le texte des commentaires
-- Il serait possible d'en utiliser, sous reserve de sauvegarder le fichier
-- obtenu au format UTF8 avant de l'importer dans TI-Nspire Scripting Tools.

-- A. POUR UTILISER CE SRIPT :
-- A1. Vous devez creer un classeur ti-nspire.
-- A2. Lancer ensuite le TI-Nspire Scripting tools
-- A3. Cliquer sur le premier bouton (ou choisissez tools, Lua Script to Clipboard)
-- A4. Selectionner le fichier contenant ce present document
-- A5. Aller dans le logiciel ti-nspire, et utiliser un Ctrl V pour copier le code lua

-- B. POUR MODIFIER CE SCIPT :
-- B1. Faites les modifications souhaitees et sauvez le fichier
-- B2. Cliquez sur le second bouton (ou choisissez tools, Reload Script)
-- B3. Allez dans le logiciel TI-Nspire, cliquer sur la fenetre correspondant au code LUA
-- B4. Appuyer sur Ctrl K pour selectionner cette fenetre
-- B5. Appuyer sur Ctrl V pour copier le nouveau Script LUA

--------------------------------------------------------------------------------------
-- DEBUT DU CODE LUA
--------------------------------------------------------------------------------------   

--------------------------------------------------------------------------------------
-- DEFINITION DE VARIABLES GLOBALES
--------------------------------------------------------------------------------------
-- definition du cadre
xmin=20
ymin=30
xmax=250
ymax=190
   
-- table contenant les carres animes, initialement, cette table est vide
squares_list={}

--------------------------------------------------------------------------------------
-- DEFINITION DE LA CLASSE DES CARRES
--------------------------------------------------------------------------------------

-- On definit ici une classe d'objets (carres) pouvant etre affiches a une position
-- donnee de l'ecran et dans une couleur donnee.

-- Ces objets possedent 5 attributs :
-- xpos, ypos : position (pixels)
-- size : taille du cote (pixels)
-- selected : le carre est-il selectionne ?
-- rgb : definition de la couleur par ses composantes R, G, B. Par exemple {120,60,60}

-- On peut leur appliquer 2 methodes :
-- initialisation,
-- affichage,

Square = class()   

-- Dans ce script, tous les carres font la meme taille.
Square.size=10

-- Initialisation d'un objet de cette classe
function Square:init(x,y,rgb,selected)
   self.xpos = x
   self.ypos = y
   self.rgb =rgb
   self.selected =rgb.selected
   platform.window:invalidate()
end

-- la fonction suivante indique comment dessiner l'objet
function Square:paint(gc)
   gc:setColorRGB(self.rgb[1], self.rgb[2], self.rgb[3])
   gc:fillRect(self.xpos,self.ypos, self.size, self.size)
   if self.selected then
      gc:setColorRGB(0, 0, 200)
      gc:drawRect(self.xpos -2, self.ypos - 2, self.size+3, self.size+3)
   end
end

--------------------------------------------------------------------------------------
-- DEFINITION DE LA CLASSE DES CARRES MOBILES
--------------------------------------------------------------------------------------
-- Cette classe herite de la precedente.
-- Les fonctions ou attributs deja definis sont directement utilisables.
-- Il y a par ailleurs de nouveaux attributs permettant de definir la vitesse :
-- xspeed, yspeed
-- et une nouvelle methode (fonction) utilisable, gerant l'animation
-- animate()

Moving_Square = class(Square)   

-- Les carres mobiles ne sont pas selectionnes
Moving_Square.selected=false

-- Initialisation d'un objet de cette classe
function Moving_Square:init(x,y,sx,sy,rgb)
   self.xpos = x
   self.ypos = y
   self.xspeed=sx
   self.yspeed=sy
   self.rgb =rgb
   platform.window:invalidate()
end

-- la fonction suivante gere l'animation d'un objet (avec les rebonds)
function Moving_Square:animate()
   if self.xpos<=xmin or xmax <= self.xpos + self.size then
      self.xspeed=-self.xspeed
   end

   if self.ypos<=ymin or ymax <= self.ypos + self.size then
      self.yspeed=-self.yspeed
   end

   self.xpos = self.xpos+self.xspeed
   self.ypos = self.ypos+self.yspeed
end

--------------------------------------------------------------------------------------
-- CONSTRUCTION DE LA PALETTE
-- (UTILISEE POUR LE CHOIX DE LA COULEUR)
--------------------------------------------------------------------------------------
-- Ces carres (immobiles) sont utilises pour le choix de la couleur du
-- carre qui sera defini lors du prochain clic.
-- Ils sont affiches dans la partie droite de la fenetre graphique

-- definition des couleurs utilisables
colors={{255,0,0},{255,255,0},{0,255,255},{0,0,255},{0,255,0}}

-- table contenant les elements de la palette, initialement, cette table est vide
palette={}

-- creation des objets
for k=1,#colors do
table.insert(palette,Square (xmax+35,  k*35, colors[k],false))
end

-- choix par defaut (lau lancement du script)
select=1       
palette[select].selected=true   
--------------------------------------------------------------------------------------
-- GESTION DES DIFFERENTS EVENEMENTS
--------------------------------------------------------------------------------------

-- La fonction suivante est la fonction d'affichage
-- Son execution est declenchee par la commande
-- platform.window:invalidate()

function on.paint(gc)
   -- dessin de la zone d'evolution
   gc:setColorRGB(231, 231, 231)
   gc:fillRect(xmin, ymin, xmax-xmin, ymax-ymin)

   -- dessin de tous les elements de la palette
   for i,object in ipairs(palette) do object:paint(gc) end

   -- dessin de tous les carres animes
   for i,object in ipairs(squares_list) do object:paint(gc) end
end

-- GESTION  DU CLIC GAUCHE
-- Permet de creer un nouveau carre mobile en definissant sa position intiale
function on.mouseDown(wx, wy)
   if wx>xmin and wx<xmax and wy>ymin and wy<ymax then
      table.insert(squares_list,Moving_Square (wx,wy,2,2,colors[select]))
      timer.start(0.05)
   end   
end

-- GESTION  DU TIMER
function on.timer()
   -- on recalcule la nouvelle position de tous les carres animes
   for i,object in ipairs(squares_list) do object:animate() end
   -- on relance la construction graphique
   platform.window:invalidate()
end   

function on.escapeKey()
   -- arret du timer (et donc de l'animation)
   timer.stop()
end

function on.deleteKey()
   -- suppression de tous les carres animes
   squares_list={}
   platform.window:invalidate()
end


function on.arrowUp()
   palette[select].selected=false   
   if select>1 then select=select-1 end
   palette[select].selected=true   
   platform.window:invalidate()
end

function on.arrowDown()
   palette[select].selected=false   
   if select<#colors then select=select+1 end
   palette[select].selected=true   
   platform.window:invalidate()
end

formes.gif
formes.gif (4.58 Kio) Consulté 4803 fois
Invité
 

Re: Un premier outil de développement LUA disponible !

Messagepar maestroarte le 08 Juin 2011, 21:32

Bonsoir. J'ai une question.
Lorsque les premiers programmes en Lua seront disponibles (j'imagine sur TI BANK) faudra t-il installer quelque chose sur la TI Nspire pour que le programme soit fonctionnel ou pas, ou est-ce que le programme sera fonctionnel dans l'immédiat...?
maestroarte
 
Messages: 65
Inscrit le: 08 Avr 2011, 23:05

Re: Un premier outil de développement LUA disponible !

Messagepar Levak92 le 08 Juin 2011, 21:40

maestroarte a écrit:Bonsoir. J'ai une question.
Lorsque les premiers programmes en Lua seront disponibles (j'imagine sur TI BANK) faudra t-il installer quelque chose sur la TI Nspire pour que le programme soit fonctionnel ou pas, ou est-ce que le programme sera fonctionnel dans l'immédiat...?

Plusieurs sont déjà disponibles sur TI-Bank (c'est émergent), et il n'y a rien à installer en plus de l'OS 3.0
Levak92
 
Messages: 321
Inscrit le: 02 Juin 2010, 23:03
Localisation: France

Re: Un premier outil de développement LUA disponible !

Messagepar Boris le 08 Juin 2011, 23:24

Pour faire fonctionner les programmes en LUA c'est expliquer dans tous les programmes LUA ci dessus :
En extrait :
A. POUR UTILISER CE SRIPT :
-- A1. Vous devez creer un classeur ti-nspire.
-- A2. Lancer ensuite le TI-Nspire Scripting tools
-- A3. Cliquer sur le premier bouton (ou choisissez tools, Lua Script to Clipboard)
-- A4. Selectionner le fichier contenant ce present document
-- A5. Aller dans le logiciel ti-nspire, et utiliser un Ctrl V pour copier le code lua
Boris
 
Messages: 324
Inscrit le: 24 Oct 2008, 06:11

Re: Un premier outil de développement LUA disponible !

Messagepar Levak92 le 08 Juin 2011, 23:34

Boris a écrit:Pour faire fonctionner les programmes en LUA c'est expliquer dans tous les programmes LUA ci dessus :
En extrait :
A. POUR UTILISER CE SCRIPT :
-- A1. Vous devez creer un classeur ti-nspire.
-- A2. Lancer ensuite le TI-Nspire Scripting tools
-- A3. Cliquer sur le premier bouton (ou choisissez tools, Lua Script to Clipboard)
-- A4. Selectionner le fichier contenant ce present document
-- A5. Aller dans le logiciel ti-nspire, et utiliser un Ctrl V pour copier le code lua


Boris, tu n'as pas compris la question. La question concernait les programmes sous-entendu "classeurs" déjà fait. maestroarte doit connaître l'utilisation de programmes ASM/C qui nécessitent Ndless (d'où la question à propos du Lua).
Levak92
 
Messages: 321
Inscrit le: 02 Juin 2010, 23:03
Localisation: France

PrécédentSuivant

Retourner vers Discussions générales sur le développement



Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron

© Copyright 2008 - Tous droits réservés.