π
<-

Aide pour programmer en LUA

Pour TI-Nspire OS 3.0 ou ultérieur.

Aide pour programmer en LUA

Unread postby AnToX98 » 19 May 2013, 19:50

Je viens de débuter sur LUA, et j'ai un peu de mal à bien m'y habituer, après avoir longtemps programmer en TI Basic sur TI-84 plus.
Après avoir acheté en avril une TI-nspire CX CAS, j'ai été beaucoup decu par la programmation en BASIC sur celle-ci, notamment avec l'absence d'affichage graphique, de 'getkey', menu, etc...
Et c'est comme ca que je suis arrivé sur LUA.
Etant en 1ere S, le prof de maths organise une serie d'AP ( acompagnement personalisé ), dont beaucoup portant sur la programmation.
Le programme sur lequel je bosse en ce moment est un jeu de casino : la roulette
J'ai deja programmé celui ci en BASIC (En commençant avec 100 $, et en misant sur des nombres entre 0 et 36), mais maintenant, j'aimerais le programmer en lua, pour vraiment recréer l'atmosphère du jeu, en dessinant la roue, en faisant tourner la bille, etc...
C'est donc la ou je bloque, et je fais appel a votre experience pour m'aider dans cela.

J'ai deja reussi à afficher l'image de la roue, de la centrer, et de la recadrer, avec le code suivant :

local screen = platform.window
function on.paint(gc)
local w = screen:width()
local h = screen:height()
imw = roulette:width()
imh = roulette:height()
im = roulette:copy(0.6*imw,0.6*imh)
imw = im:width()
imh = im:height()
gc:drawImage(im, (w - imw)/2, (h - imh)/2)
end

--Images

roulette = image.new("numéros")

Mais voila que je suis bloqué, j'aimerais enfaite faire tourner la bille pendant trois tour, le tout en ralentissant petit à petit, et qu'elle s'arrete sur un nombre aleatoire de la roue, en utilisant drawArc(x,y,r1,r2,start_degree,end_degree)

Si vous pouviez m'éclaircir, toutes reponses sont les bienvenues :idea:
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Aide pour programmer en LUA

Unread postby Levak » 19 May 2013, 20:59

Plusieurs choses :
  • Eviter les images quand on peut le faire avec des fonctions de dessin de base (en l'occurrence, une roulette se fait "à la main" avec une série de drawArc)
  • Ne surtout pas faire de image:new ou image:copy (ton cas) dans le on.paint(). Il faut bien comprendre que on.paint est un évènement appelé à chaque actualisation de l'écran, et que image:copy va littéralement créer une nouvelle image et faire travailler le garbage collector pour rien.
  • Mettre en cache platform.window:width/height() peut être une bonne idée en utilisant on.resize(width, height) plutôt que d'utiliser à chaque fois les méthodes platform.window:width/height()
  • Utiliser les objets peut être un gros avantage dans ton cas où tu as bien une séparation nette entre le dessin et l'algorithmique.
    Je te laisse chercher du côté de class()

Ce que tu demandes à la fin de ton post c'est simplement ce que tu veux coder, on ne pourra pas t'aider de ce point de vue là.
A mon avis, ce qu'il te manque c'est de l'expérience dans les Objets Lua. Cela va peut-être te débloquer. Cependant il restera le problème des timers et de l'évènementiel qui va surement te gêner car tu viens du TI-Basic. Souvent, l'aspect de tâches déportées est mal compris au début.

Peut être ne connais-tu pas encore http://inspired-lua.org/ ?
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: Aide pour programmer en LUA

Unread postby Adriweb » 19 May 2013, 21:02

Je me permet d'ajouter aussi http://compasstech.com.au/TNS_Authoring ... tut11.html (particulièrement, mais les autres tutos sont tous aussi excellents), qui est linké depuis Inspired-Lua, mais au cas où tu le loupes...

Ensuite, oui, pour faire des animations, il faudra utiliser un(/des) timer ce qui va probablement en effet te caser des soucis au début. Reviens vers nous des que tu précise un peu ta demande :)


(D'ailleurs, Levak : peut-être serait-il temps de releaser ta superbe "bibliothèque" AnimIt ? :P)

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: Aide pour programmer en LUA

Unread postby AnToX98 » 20 May 2013, 15:54

Merci beaucoup pour vos reponses !

Je connais les sites inspired et compasstech, c'est les meilleurs tutos du web !
Je vais donc essayer de dessiner la roue avec drawArc et drawString, et après, pour faire tourner la bille, boucles for, timers et coordonnées du point feront l'affaire :)

La vrai question, c'est : Serait-ce possible de recréer ENTIEREMENT le jeu en lua?, ce qui va demander beaucoup d'investissement, vu que je vient de debuter dans le domaine, avec des menus, des inputs, etc... Ou de se limiter tout simplement avec une interaction partielle avec le BASIC ?

Ce serait vraiment cool d'y arriver, car meme si ça me prend du temps, je suis près à appréhender le language avec patience, car avant tout, ça ne s'apprend pas en 1 jour :)

J'espere que vous allez etre a mes cotes pendant cette aventure :P

PS: Adriweb, sur un de tes tutos sur youtube, de LUA, j'ai remarqué que ton fond d'ecran est la vallé de chamonix, avec l'aiguille verte, etc... tu habites dans le coin ? J'ai un chalet à vallorcine, à 10 min de cham :P après argentière :P
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Aide pour programmer en LUA

Unread postby critor » 20 May 2013, 15:59

AnToX98 wrote:PS: Adriweb, sur un de tes tutos sur youtube, de LUA, j'ai remarqué que ton fond d'ecran est la vallé de chamonix, avec l'aiguille verte, etc... tu habites dans le coin ? J'ai un chalet à vallorcine, à 10 min de cham :P après argentière :P


On y est passé, mais on n'habite pas du tout par là ;)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17088
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Aide pour programmer en LUA

Unread postby Levak » 20 May 2013, 15:59

AnToX98 wrote:La vrai question, c'est : Serait-ce possible de recréer ENTIEREMENT le jeu en lua?,

Bah, bien sûr, cf tous les jeux en Lua sur TI-Nspire déjà fait.


Ou de se limiter tout simplement avec une interaction partielle avec le BASIC ?

Il faut le plus possible se séparer du Nspire-Basic. Il n'y a, à ma connaissance, rien qui ne soit utile dans le Nspire-Basic qui ne puisse pas être reproduit en Lua. L'inverse est bien évidemment une évidence même, beaucoup de choses du Lua ne peuvent pas être reproduits en Nspire-Basic, à commencer par draw et timer.
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: Aide pour programmer en LUA

Unread postby Adriweb » 20 May 2013, 16:06

AnToX98 : voir ce que Levak a dit :)

Pour les timers, etc., ca va être le "plus compliqué", je dirai, mais c'est largement faisable.

AnToX98 wrote:J'espere que vous allez etre a mes cotes pendant cette aventure :P

Suffit de venir poser tes questions :)

AnToX98 wrote:PS: Adriweb, sur un de tes tutos sur youtube, de LUA, j'ai remarqué que ton fond d'ecran est la vallé de chamonix, avec l'aiguille verte, etc... tu habites dans le coin ? J'ai un chalet à vallorcine, à 10 min de cham :P après argentière :P

Nope, mais il me semble que je suis déja passé pas très loin en vacances, par contre ^^ (et d'ailleurs, je mets très rarement des photos persos en fond d'écran, je préfères les trucs abstracts, même si j'aime bien les paysages de temps en temps, voir mon pack d'il y a quelques temps :P)

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: Aide pour programmer en LUA

Unread postby AnToX98 » 21 May 2013, 01:45

Merci infiniment :P, sinon, y'a t-il un moyen de faire varier l'opacité d'une image ?
Autre question, comment effacer un objet dessiné dans la function on.paint (gc) ?
Merci d'avance, Antoine :)
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Aide pour programmer en LUA

Unread postby Levak » 21 May 2013, 09:27

Non.
Aussi, l'écran est vidé à chaque appel de l'évènement on.paint
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: Aide pour programmer en LUA

Unread postby AnToX98 » 23 May 2013, 20:43

Je voudrais savoir s'il existe dim(liste) sur lua? c'est maths.lenght ?
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Next

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 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.
2121 utilisateurs:
>2103 invités
>11 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)