perl Tk sur neo FreeRunner

Le
Abb
Bonjour,

J'ai découvert le Neo FreeRunner, et en y installant une débian, j'ai
ressorti mon perl-tk. Pratique pour une rapide interface graphique mais
dès que je veux un peu m'amuser, c'est lent

J'ai fait un petit programme (pas des plus optimisé, j'en conviens) qui
fait bouger à l'écran 10 boule noir qui descendent et 10 blanches qui
montent et qui s'entrechoquent.
Le tout me paraît bien lent.

Un premier point de lenteur pourrait être le fait que je déplace une a
une chaque boule avec un $canevas->coord , et je suppose que Tk
raffraichit l'écran à chaque fois.
Est-il possible d'arrêter le rafraichissement (?) d'enchainer une série
de coord (ou de move) et de rafraichir après (update si je ne me trompe) ?

Merci

AlainBB
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #18176271
À (at) Thu, 18 Dec 2008 18:23:37 +0100,
Abb
J'ai fait un petit programme (pas des plus optimisé, j'en conviens)
qui fait bouger à l'écran 10 boule noir qui descendent et 10 blanches
qui montent et qui s'entrechoquent.
Le tout me paraît bien lent.



Pas optimisé => Lent. Jusque là, ok. ;-)

Un premier point de lenteur pourrait être le fait que je déplace une a
une chaque boule avec un $canevas->coord , et je suppose que Tk
raffraichit l'écran à chaque fois.



A priori, Tk rafraichit l'écran au prochain appel à la méthode
'update' ou lors du prochain passage dans la boucle générale. Mais Tk
peut décider de le faire plus tôt...

Est-il possible d'arrêter le rafraichissement (?) d'enchainer une
série de coord (ou de move) et de rafraichir après (update si je ne me
trompe) ?



Non... sauf peut-être en cachant le Tk::Canvas mais je doute qu'on
gagne en performance.

Si vous voulez vraiment un truc rapide pour ce genre de graphisme,
utilisez 'feu' Tk::Zinc ou alors d'autres modules d'interface
graphique (Gtk, OpenGL, etc.).

--
Paul Gaborit - Perl en français -
Publicité
Poster une réponse
Anonyme