Hello,
J'ai une question par rapport à turtle. En effet, il arrive (quand j'utilise les événements jusqu'à présent) que lorsque je ferme la fenêtre elle se rouvre (et plante) si le traçage ou le coloriage qui était en cours n'était pas fini. Cela m'arrive avec le code ci-dessous : lorsque je déplace le point et que je ferme avant la prise en compte de tous les événements. Cela m'arrive aussi avec mon programme du jeu des allumettes (que je peux poster si besoin) lorsque je ferme alors que les allumettes sont en train d'être dessinées.
Même certains programmes de turtledemo souffrent du même problème (exemple : chaos), d'autres non. Je ne comprends pas pourquoi.
Merci pour votre aide !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import turtle '''Fonction pour se déplacer à un point sans tracer''' def deplacer_sans_tracer(x, y = None): turtle.up() if x is tuple and len(x) == 2: turtle.goto(x) else: turtle.goto(x, y) turtle.down() '''Fonction pour afficher seulement la balle''' def affiche_point(diametre, couleur): deplacer_sans_tracer(pos_x, pos_y) turtle.clear() turtle.dot(diametre, couleur) '''Fonction pour réinitialiser la balle''' def move_reset(): global pos_x, pos_y pos_x = pos_y = 0 affiche_point(diametre_balle, couleur_balle) '''Fonction pour changer la coordonnée x de la balle''' def move_x(num = 0): global pos_x pos_x += num affiche_point(diametre_balle, couleur_balle) '''Fonction pour changer la coordonnée y de la balle''' def move_y(num = 0): global pos_y pos_y += num affiche_point(diametre_balle, couleur_balle) '''Boucle principale''' if __name__ == "__main__": pos_x, pos_y = 0, 0 diametre_balle, couleur_balle = 20, 'red' turtle.hideturtle() affiche_point(diametre_balle, couleur_balle) turtle.listen() turtle.onkeypress(lambda : move_x(-10), "Left") turtle.onkeypress(lambda : move_x(10), "Right") turtle.onkeypress(lambda : move_y(10), "Up") turtle.onkeypress(lambda : move_y(-10), "Down") turtle.onkeyrelease(move_reset, "space") turtle.mainloop() |
+0
-0