Bonjour, j'ai prgrammé la fonction qui sert à décrire le mouvement du serpent avec les virages etc...
Le problème est que ça fonctionne à moitité...En effet chaque morceau du serpent se suit mais il y a des légers problèmes de coordonnées, car les boules qui suivent ne sont plus bien ancrées dans leurs cases...
Regardez :
- En ligne droite : http://img14.imageshack.us/img14/9003/56838195.jpg
- En ligne montante (après un virage vers la gauche) : http://img37.imageshack.us/img37/2721/43201085.jpg
Je mets la fonction de mon code source qui permet cela :
La fonction coordoonnées récupère simplement les coordonnées de chaque partie du serpent!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 def mouvement(self) : "Fonction qui gère le mouvement du serpent <Récursivité>" # Liste de listes des coordonnées de chaque boule : if self.mode ==True : # On teste si obstacle quelconque self.testObstacle() # Liste temporaire à chaque itération de cette fonction, elle contiendra les coordonnées self.coord = [] for i in range(len(self.corps)) : # On bouge tout d'abord la tête : self.boss.move(self.corps[0], self.dx, self.dy) # On récupère donc les <nouvelles> coordonnées de la tête et des autres parties self.coordonnees(i) # On transmet les coordonnées sauf à la tête if i>0 : # Transmission des coordonnées par "récurrence" self.boss.coords(self.corps[i], self.coord[i-1][0]-self.r, self.coord[i-1][1]-self.r, self.coord[i-1][0]+self.r, self.coord[i-1][1]+self.r) self.txt2.configure(text=str(self.coord)) # Récursivité self.boss.after(200, self.mouvement) else : self.finAnimation()
Par contre quand je fais le simple mouvement dans la boucle (move(self.corps[i]) sans prendre en compte les coordonnées, ça fonctionne parfaitement !
Merci de bien vouloir m'aider
a+
Partager