A par une condition moche, il n'y en a pas.
Par condition moche, j'entends :
function on.paint(gc)
if not mouse then
-- do normal stuff here
end
mouse = false
end
function on.mouseMove(x, y)
mouse = true
end
Et encore, j'ai pas testé.
C'est quoi le problème en fait ? Tu te trompes peut être de méthode pour appliquer un principe qui doit être retranscrit en évènementiel.
Aide Lua
38 posts
• Page 2 of 4 • 1, 2, 3, 4
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: Aide Lua
Ah ça peut ptèt être pas mal.
Je fais une animation un peu similaire à celle présentée dans un des tutoriels de Inspired Lua. (et le problème est aussi présent dans l'exemple !)
Il s'agit de l'animation qui compte.
Et bien quand tu bouges la souris : ça compte tout vite parce-que ça rappelle on.paint !
Comment contourner ça ? (au pire c'est pas bien grave)
2è question :
Pour le timer, comment fonctionne-t-il véritablement ?
Qu'est-ce que la période du timer ?
J'arrive à faire une animation par "étapes" grâce au timer, mais je n'arrive pas à faire un délai !
Comment faire une attente avec le timer ? ^^
Merci bien !
Je fais une animation un peu similaire à celle présentée dans un des tutoriels de Inspired Lua. (et le problème est aussi présent dans l'exemple !)
Il s'agit de l'animation qui compte.
- Code: Select all
x = 1
animating = false
function on.paint(gc)
gc:setFont("sansserif", "r", 10)
gc:drawString(tostring(x), 0, 0, "top")
if animating then
x = x + 1
timer.start(0.5)
end
end
function on.charIn(ch)
animating = not animating -- switch state
platform.window:invalidate() -- recall graph engine
end
function on.timer()
timer.stop()
platform.window:invalidate() -- recall graph engine
end
Et bien quand tu bouges la souris : ça compte tout vite parce-que ça rappelle on.paint !
Comment contourner ça ? (au pire c'est pas bien grave)
2è question :
Pour le timer, comment fonctionne-t-il véritablement ?
Qu'est-ce que la période du timer ?
J'arrive à faire une animation par "étapes" grâce au timer, mais je n'arrive pas à faire un délai !
Comment faire une attente avec le timer ? ^^
Merci bien !

Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1985
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: Aide Lua
Ah, ok, je vois.
Le problème là, c'est que si tu empêches d'incrémenter pendant que la souris bouge, ça fera l'effet inverse, ça ne bougera plus lorsque tu bouges la souris.
Concrètement, il faudrait utiliser un timer ici, et que ça soit le timer qui incrémente, pas le on.paint().
Sinon, le timer n'est qu'une horloge, qui envoie une pulsation toutes les x secondes où x est la période. Lorsqu'une pulsation émerge, l'évènement on.timer() est appelé.
Donc, attention, un timer n'est pas du tout un delay =)
Le problème là, c'est que si tu empêches d'incrémenter pendant que la souris bouge, ça fera l'effet inverse, ça ne bougera plus lorsque tu bouges la souris.
Concrètement, il faudrait utiliser un timer ici, et que ça soit le timer qui incrémente, pas le on.paint().
Sinon, le timer n'est qu'une horloge, qui envoie une pulsation toutes les x secondes où x est la période. Lorsqu'une pulsation émerge, l'évènement on.timer() est appelé.
Donc, attention, un timer n'est pas du tout un delay =)
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: Aide Lua
Et est-ce qu'il envoie une impulsion au démarrage, quand il est appelé ?
Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1985
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: Aide Lua
Loulou 54 wrote:Et est-ce qu'il envoie une impulsion au démarrage, quand il est appelé ?
De mémoire, oui. Mais si je me trompe, rien ne t'empêche d'appeler manuellement on.timer() juste après le timer.start(x)
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: Aide Lua
Justement c'est ce que je veux éviter. ^^ Je vais voir, pis j'ai peut-être une autre manière de faire. 
Sinon, comment tu ferais un délai de x secondes ?

Sinon, comment tu ferais un délai de x secondes ?
Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1985
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: Aide Lua
Loulou 54 wrote:Justement c'est ce que je veux éviter. ^^ Je vais voir, pis j'ai peut-être une autre manière de faire.
Une ligne de plus n'est pas la mort pour ce genre de détail
Sinon, comment tu ferais un délai de x secondes ?
Pour faire quoi ?
Concrètement, il faut repenser autrement les concepts en évènementiel. Le Framework sur TI Nspire n'en est qu'un exemple. Tu as le C++ ou le C# pour faire des interfaces graphiques qui fonctionnent sur le même principe. Et dans ces cas là, le delay n'est pas approprié.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: Aide Lua
Levak wrote:Loulou 54 wrote:Justement c'est ce que je veux éviter. ^^ Je vais voir, pis j'ai peut-être une autre manière de faire.
Une ligne de plus n'est pas la mort pour ce genre de détail
Euh, je crois qu'il veut éviter que on.timer soit appelé au démarrage. Mais à ma connaissance, ce n'est pas le cas.
Loulou 54 wrote:Sinon, comment tu ferais un délai de x secondes ?
Je plussoie Levak, c'est de l’événementiel. Un delay est inutile... Tu peux toujours mettre une condition dans chaque événement qui est validée par le on.timer...
Mes programmes en Lua pour TI-Nspire : Snake, Space invaders, Bobby Carrot, Minesweeper, Mazes 3D, nSpaint, FreeCell, Tiny3D-Viewer, CubeField
-
ChockostaPremium
Niveau 10: GR (Guide de Référence)- Posts: 213
- Joined: 24 Feb 2011, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Math sup
Re: Aide Lua
Le but étant de laisser s'écouler un certain temps après un affichage, c'est tout.
EDIT : au passage, quelle est la fonction pour générer un nombre aléatoire ?
EDIT : au passage, quelle est la fonction pour générer un nombre aléatoire ?

Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1985
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: Aide Lua
math.random(min,max)
Mes programmes en Lua pour TI-Nspire : Snake, Space invaders, Bobby Carrot, Minesweeper, Mazes 3D, nSpaint, FreeCell, Tiny3D-Viewer, CubeField
-
ChockostaPremium
Niveau 10: GR (Guide de Référence)- Posts: 213
- Joined: 24 Feb 2011, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Math sup
38 posts
• Page 2 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: ClaudeBot [spider] and 4 guests