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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| def coordonnees(self, i) :
"Modifie la liste des coordonnées à chaque mouvement"
# Création de la liste des coordonnées :
# On crée une liste de la taille de la totalité des boules :
# Liste temporaire pour enregistrer une liste des coordonnées d'une boule :
coordsxy = []
self.coords_corps = self.boss.coords(self.corps[i])
self.coords_corps[0], self.coords_corps[1] = int(self.coords_corps[0]), int(self.coords_corps[1])
# Coordonnées x et y de la boule i-1 :
coordsxy.append(self.coords_corps[0])
coordsxy.append(self.coords_corps[1])
# On enregistre la liste des coordonnées de la boule i-1 dans le liste permanente
self.coord.append(coordsxy)
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(1000, self.mouvement)
else :
self.finAnimation()
def deplHaut(self, event) :
"Le serpent part vers le haut"
# Il part vers le haut si <=> n'est pas vers le bas ou vers le haut :
if self.dy ==0 :
self.dx =0
self.dy =-10
def deplBas(self, event) :
"Le serpent part vers le bas <=> il n'est pas vers le haut"
if self.dy == 0 :
self.dy = 10
self.dx = 0
def deplGauche(self, event) :
"Le serpent part vers la gauche <=> il n'est pas vert la droite"
if self.dx == 0 :
self.dy =0
self.dx =-10
def deplDroite(self, event) :
"Le serpent part vers la droite <=> il n'est pas vers la gauche"
if self.dx == 0 :
self.dy = 0
self.dx = 10
def testObstacle(self) :
"Vérification de la position du serpent"
# Si la tête dépasse les limites du canevas |
Partager