2 on.paint ?
2 on.paint ?
Okay just before I explain I wanna say that I'm not english so this message may get a lot of errors.
So, I'm totally starting with lua but I love it, I'm trying to do a really simple game called "Morpion", the problem is, that I have 2 on.paint function and the second remove the first, and I don't know how to have the 2 at the same time, but without my program you'll not understand anything so i'll just add it here . I need that when I press 5, it had a new gc:draw on my on.paint already existing.
If someone could help me would be cool because I searched for like 5 hours (no lying) in allll the sites but not any is speaking how to...
Thanks in advance !
So, I'm totally starting with lua but I love it, I'm trying to do a really simple game called "Morpion", the problem is, that I have 2 on.paint function and the second remove the first, and I don't know how to have the 2 at the same time, but without my program you'll not understand anything so i'll just add it here . I need that when I press 5, it had a new gc:draw on my on.paint already existing.
If someone could help me would be cool because I searched for like 5 hours (no lying) in allll the sites but not any is speaking how to...
Thanks in advance !
-
GreenTree0
Niveau 2: MI2 (Membre Initié)- Messages: 8
- Inscription: 05 Sep 2017, 16:21
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Seconde
Re: 2 on.paint ?
Tu peux parler Français, après tout c'est la langue majoritaire sur TI-Planet
Bref, je n'ai pas bien compris ton besoin d'avoir plusieurs on.paint dans ton code selon ce que tu dois dessiner.
Il me semble en fait que tu n'as pas bien intégré la façon dont se déroule le fonctionnement (événementiel) de l'appli - mais c'est relativement normal au début, c'est assez différent d'autres choses/langages.
En gros, tu n'as pas besoin de redéclarer des on.paint, un seul suffit, et en fonction de variables externes/globales (mises a jour ailleurs, par exemple dans le on.charIn), va afficher des choses différentes.
Par exemple si tu as une matrice (un tableau 2D) représentant l'état en cours de la grille du morpion, le charIn va juste modifier cette variable là selon la touche appuyée, et tout ce que fera le on.paint, c'est affichée l'état de la grille (modifiée au cours du temps donc) - aucun besoin que telle ou telle fonction aille en modifier une autre
Note : pour déclencher un re-paint (autrement dit, faire en sorte que le on.paint() soit appelé par le système, tu peux mettre
Au passage, si tu cherches des tutos de Lua, il y a en a des excellents sur le site de compasstech, et le wiki d'inspired-lua devrait bien t'aider aussi (en plus du PDF officiel de l'API)
Bref, je n'ai pas bien compris ton besoin d'avoir plusieurs on.paint dans ton code selon ce que tu dois dessiner.
Il me semble en fait que tu n'as pas bien intégré la façon dont se déroule le fonctionnement (événementiel) de l'appli - mais c'est relativement normal au début, c'est assez différent d'autres choses/langages.
En gros, tu n'as pas besoin de redéclarer des on.paint, un seul suffit, et en fonction de variables externes/globales (mises a jour ailleurs, par exemple dans le on.charIn), va afficher des choses différentes.
Par exemple si tu as une matrice (un tableau 2D) représentant l'état en cours de la grille du morpion, le charIn va juste modifier cette variable là selon la touche appuyée, et tout ce que fera le on.paint, c'est affichée l'état de la grille (modifiée au cours du temps donc) - aucun besoin que telle ou telle fonction aille en modifier une autre
Note : pour déclencher un re-paint (autrement dit, faire en sorte que le on.paint() soit appelé par le système, tu peux mettre
platform.window:invalidate()
à la fin du on.charInAu passage, si tu cherches des tutos de Lua, il y a en a des excellents sur le site de compasstech, et le wiki d'inspired-lua devrait bien t'aider aussi (en plus du PDF officiel de l'API)
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: 2 on.paint ?
Alors j'ai fait ce que tu m'as dit mais maintenant ça me met une erreur et quand je clique sur 5 tout s'efface (dans le ti nspire student software) , je te met un screen, et sur calculette ca efface tout et ca me met un message : "La page 1.1 a rencontré une erreur. Veuillez contacter l'auteur avec les informations suivantes." Line 34: attempt to index global 'gc" (a nil value). Donc je sais pas trop quoi faire et j'ai essayer de placer le platform invalidate un peu partout ca n'a rien changer :/
P.S : Merci beaucoup pour ton aide déja !
P.S.S : J''enregistre les tutos j'irai les voirs ce week end et j'y passerai un peu de temps, merci
P.S : Merci beaucoup pour ton aide déja !
P.S.S : J''enregistre les tutos j'irai les voirs ce week end et j'y passerai un peu de temps, merci
-
GreenTree0
Niveau 2: MI2 (Membre Initié)- Messages: 8
- Inscription: 05 Sep 2017, 16:21
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Seconde
Re: 2 on.paint ?
Je regarderai davantage ce soir, mais : 1) pas d'utilisation de gc sauf dans le on.paint 2) pour des raisons de performances, faire d'image.new/rotate/scale... uniquement le moins souvent possible (par exemple dans une fonction d'initialisation, pas dans un handler d'événement comme on.charIn)
Cf. archives_voir.php?id=6720 et archives_voir.php?id=280698
Cf. archives_voir.php?id=6720 et archives_voir.php?id=280698
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: 2 on.paint ?
Alors, re merci déja !
Donc j'ai enlever le gc, et pareil ca efface tout et ça met une petite fleche rouge au meme endroit, et dans la calculette : "attempt to call global 'drawimage' (a nil value) voilou, et sinon a part les image.new et toussa, comment on fait pour importer une image ?
P.S : Les logiciels je regarderaient ça ce we ^^
En tout cas merci !
Donc j'ai enlever le gc, et pareil ca efface tout et ça met une petite fleche rouge au meme endroit, et dans la calculette : "attempt to call global 'drawimage' (a nil value) voilou, et sinon a part les image.new et toussa, comment on fait pour importer une image ?
P.S : Les logiciels je regarderaient ça ce we ^^
En tout cas merci !
-
GreenTree0
Niveau 2: MI2 (Membre Initié)- Messages: 8
- Inscription: 05 Sep 2017, 16:21
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Seconde
Re: 2 on.paint ?
Non, ce qu'il faut faire, c'est pas d'appel à gc:drawImage (ou toute autre fonction de gc) autre part que dans on.paint(gc), donc fais le y la dedans
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: 2 on.paint ?
Alors, j'ai essayer, avec sans gc:, avec et sans platform invalidate, sans le gc ca fait tout disparaitre, donc erreur fleche rouge, avec il ne se passe strictement rien quand j'appuie sur 5 :/
Désolé de te mobiliser ton temps ! :/
J'ai fait comme ceci :
Désolé de te mobiliser ton temps ! :/
J'ai fait comme ceci :
-
GreenTree0
Niveau 2: MI2 (Membre Initié)- Messages: 8
- Inscription: 05 Sep 2017, 16:21
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Seconde
Re: 2 on.paint ?
En même temps, c'est normal que ça ne fonctionne pas, ça fait 2 fois que tu n'appliques pas ce que je dis...
- gc tout seul ou drawImage tout seul, ça ne veut rien dire, donc erreur normale.
- toutes les actions graphiques (ce qui commence par "gc:") doit être impérativement (et uniquement) dans la fonction on.paint(gc).
- les image.new, tu devrais les faire en haut de ton fichier plutôt, ça prendra moins de mémoire et ça ira plus vite
- en bas de ta fonction on.charIn, écris platform.window:invalidate() pour déclencher un refresh de l'écran (donc ça va finir par appeler ton on.paint(gc), qui va donc dessiner ce que tu lui dis)
Tu devrais copier/coller ton code (plutôt que de faire un screenshot), comme ça je pourrais le reprendre directement.
- gc tout seul ou drawImage tout seul, ça ne veut rien dire, donc erreur normale.
- toutes les actions graphiques (ce qui commence par "gc:") doit être impérativement (et uniquement) dans la fonction on.paint(gc).
- les image.new, tu devrais les faire en haut de ton fichier plutôt, ça prendra moins de mémoire et ça ira plus vite
- en bas de ta fonction on.charIn, écris platform.window:invalidate() pour déclencher un refresh de l'écran (donc ça va finir par appeler ton on.paint(gc), qui va donc dessiner ce que tu lui dis)
Tu devrais copier/coller ton code (plutôt que de faire un screenshot), comme ça je pourrais le reprendre directement.
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: 2 on.paint ?
Bon alors, je sais que ce que je fais est encore faux mais je t'explique mon point de vue, si le gc:drawImage doit etre dans le on.paint alors comment il peut aussi etre dans le on.charIn, si il est dans le on.paint il va se dessiner direct et non pas quand j'appuierai sur 5, enfin bon, je te met le code, je pense que je comprendrai apres :
- Code: Tout sélectionner
local screen = platform.window
local h=screen:height()
local w=screen:width()
tour = rond
case1 = vide
case2 = vide
case3 = vide
case4 = vide
case5 = vide
case6 = vide
case7 = vide
case8 = vide
case9 = vide
croixu = image.new(_R.IMG.croixu)
function on.paint(gc)
gc:drawLine(120, 170,120,40)
gc:drawLine(200, 170,200,40)
gc:drawLine(60, 80,260,80)
gc:drawLine(60, 130,260,130)
gc:setFont("sansserif", "bi", 12)
gc:setColorRGB(100, 200, 8)
gc:drawString("Morpion", 130,0)
end
function on.charIn(ch)
if ch == "5" then
if case5 == vide then
if tour == rond then
tour=croix
gc:drawImage(croixu,100,75)
else
if tour == croix then
tour=rond
end
end
end
end
end
platform.window:invalidate()
-
GreenTree0
Niveau 2: MI2 (Membre Initié)- Messages: 8
- Inscription: 05 Sep 2017, 16:21
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Seconde
Re: 2 on.paint ?
Ben, justement, le on.paint contiendra le code nécessaire pour savoir quoi afficher selon des critères à déterminer (des variables qui seront à telle ou telle valeur, mis dans le on.charIn par exemple).
Je modifie et posterai tout a l'heure un code amélioré.
Au passage, l'invalidate à la fin du l'as mis en dehors de la fonction on.charIn et non à la fin - ça ne marchera pas...
Je modifie et posterai tout a l'heure un code amélioré.
Au passage, l'invalidate à la fin du l'as mis en dehors de la fonction on.charIn et non à la fin - ça ne marchera pas...
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
18 messages
• Page 1 sur 2 • 1, 2
Retourner vers Problèmes divers / Aide débutants
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 71 invités