Commit e284aa77 authored by Vincent BRULE's avatar Vincent BRULE
Browse files

maj

parent 3c54068c
......@@ -26,27 +26,35 @@ class Unite:
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5 # Prix du soldat
self.temps = 0
self.liste_case = []
self.temps_passe = 0
def modifier_vitesse(self, vit):
self.vitesse = vit
def afficher(self, ecran):
if self.numero_image == 1:
image_soldat_initiale = image.load(self.chemin_image_soldat)
elif self.numero_image == 2:
image_soldat_initiale = image.load(self.chemin_image_soldat_2)
elif self.numero_image == 3:
image_soldat_initiale = image.load(self.chemin_image_soldat_3)
elif self.numero_image == 4:
image_soldat_initiale = image.load(self.chemin_image_soldat_4)
image_soldat_finale = transform.scale(image_soldat_initiale, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(image_soldat_finale, self.position)
return
def chrono(self):
return self.temps_passe - self.temps
def afficher(self, ecran):
if self.affichage == 1:
if self.numero_image == 1:
image_soldat_initiale = image.load(self.chemin_image_soldat)
elif self.numero_image == 2:
image_soldat_initiale = image.load(self.chemin_image_soldat_2)
elif self.numero_image == 3:
image_soldat_initiale = image.load(self.chemin_image_soldat_3)
elif self.numero_image == 4:
image_soldat_initiale = image.load(self.chemin_image_soldat_4)
image_soldat_finale = transform.scale(image_soldat_initiale, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(image_soldat_finale, self.position)
return
else :
return
### Retire de la sante à l'unité (si elle se fait attaquer par exemple)
......@@ -56,44 +64,59 @@ class Unite:
else:
self.sante = 0
def avancer(self, carte):
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
if (u, v) not in self.liste_case:
if (self.position[0] % Constante.taille_rel == 0 and self.position[1] % Constante.taille_rel == 0):
self.liste_case.append((u, v))
prochaineCase = self.chercherProchaineCase(carte)
if prochaineCase != "erreur":
a = (prochaineCase[0] * Constante.taille_rel - self.position[0])
b = (prochaineCase[1] * Constante.taille_rel - self.position[1])
if a != 0:
dx = (-self.vitesse if a < 0 else self.vitesse)
else:
dx = 0
if b != 0:
dy = (-self.vitesse if b < 0 else self.vitesse)
else:
dy = 0
if dx == -self.vitesse:
self.numero_image = 1
elif dx == self.vitesse :
self.numero_image = 2
elif dy == -self.vitesse:
self.numero_image = 3
elif dy == self.vitesse:
self.numero_image = 4
nPos = (self.position[0] + dx, self.position[1] + dy)
self.position = nPos
return
def avancer(self, carte, base, ecran):
if self.chrono() > self.vitesse:
self.temps = time.time()
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
if (u, v) not in self.liste_case:
if (self.position[0] % Constante.taille_rel == 0 and self.position[1] % Constante.taille_rel == 0):
self.liste_case.append((u, v))
prochaineCase = self.chercherProchaineCase(carte)
if prochaineCase != "erreur":
a = (prochaineCase[0] * Constante.taille_rel - self.position[0])
b = (prochaineCase[1] * Constante.taille_rel - self.position[1])
if a != 0:
dx = (-5 if a < 0 else 5)
else:
dx = 0
if b != 0:
dy = (-5 if b < 0 else 5)
else:
dy = 0
if dx == -5 :
self.numero_image = 1
elif dx == 5 :
self.numero_image = 2
elif dy == -5:
self.numero_image = 3
elif dy == 5:
self.numero_image = 4
nPos = (self.position[0] + dx, self.position[1] + dy)
self.position = nPos
if self.proprietaire == 2:
if nPos[0]/Constante.taille_rel == 1 and nPos[1]/Constante.taille_rel == 4:
print "ok"
base.perte_sante()
base.liste_unite.remove(self)
image_route_initiale = image.load(self.chemin_image_route)
image_route_finale = transform.scale(image_route_initiale, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(image_route_finale, (Constante.taille_rel*2, Constante.taille_rel*4))
self.affichage = 0
return
else :
self.temps_passe = time.time()
return
def chercherProchaineCase(self, carte):
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
......@@ -113,7 +136,7 @@ class Unite:
if (g, h) in carte.liste_route and (g, h) not in self.liste_case:
return (g, h)
else:
else:
return "erreur"
class Unite_feu(Unite):
......@@ -124,16 +147,18 @@ class Unite_feu(Unite):
self.chemin_image_soldat_2 = "soldat_feu_2.png"
self.chemin_image_soldat_3 = "soldat_feu_3.png"
self.chemin_image_soldat_4 = "soldat_feu_4.1.png"
self.numero_image = 0
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.position = pos # Position du soldat
self.vitesse = 5 # Vitesse du soldat
self.vitesse = 0.001 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
class Unite_glace(Unite):
def __init__(self, pos, pro):
......@@ -142,15 +167,15 @@ class Unite_glace(Unite):
self.chemin_image_soldat_2 = "soldat_glace_2.png"
self.chemin_image_soldat_3 = "soldat_glace_3.png"
self.chemin_image_soldat_4 = "soldat_glace_4.png"
self.numero_image = 0
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.position = pos # Position du soldat
self.vitesse = 6 # Vitesse du soldat
self.vitesse = 0.01 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
\ No newline at end of file
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment