Răsfoiți Sursa

sauvegarde locale temporaire

louciane 3 zile în urmă
părinte
comite
eb0bd151de
6 a modificat fișierele cu 20 adăugiri și 11 ștergeri
  1. 5 8
      farmer.py
  2. BIN
      images/hexa_path.png
  3. BIN
      images/seed_path.png
  4. 2 2
      main.py
  5. 11 1
      tiles.py
  6. 2 0
      variables.py

+ 5 - 8
farmer.py

@@ -2,14 +2,16 @@ import pygame
 from tiles import *
 from variables import *
 from world import World
+from player import *
 
 class Farmer:
-    def __init__(self, x: int, y: int, world: World, display: pygame.display):
+    def __init__(self, x: int, y: int, world: World, player: Player, display: pygame.display):
         """Un fermier, avec ses coordonnées (x, y)"""
         self.display = display
         self.x: int = x
         self.y: int = y
         self.world: World = world
+        self.player = player
         self.neighbors_list: list = self.neighbors(self.x, self.y, self.world)
         self.origin: Tile = self.find_current_tile()
         self.destination: Tile = world.pos_list[0]
@@ -44,7 +46,7 @@ class Farmer:
         
         return res
 
-    def next_tuile(self) -> tuple:
+    def next_tile(self) -> tuple:
             """Prend la tuile à atteindre et renvoie les coordonnées de la tuile sur laquelle le fermier doit aller pour s'en rapprocher le plus"""
             res = (0, 0)
             x_nest = self.destination["x"]
@@ -97,10 +99,5 @@ class Farmer:
         if self.is_at_nest() :
             self.destination = self.origin
         elif self.is_at_origin():
-            self.destination = self.world.pos_list[0]
-        
-
-    def way_to_follow(self):
-        """Renvoie les coordonées par lesquelles va passer le fermier sous forme d'une liste"""
-        return None
+            self.destination = {"x": self.x * 2, "y": self.y * 2}
         

BIN
images/hexa_path.png


BIN
images/seed_path.png


+ 2 - 2
main.py

@@ -27,7 +27,7 @@ def main():
     nest = Nest(0, display)
 
     random_border_tile_example = world.random_border_tile(world.border_tiles(world.tiles_list))
-    farmer = Farmer(random_border_tile_example.x, random_border_tile_example.y, world, display)
+    farmer = Farmer(random_border_tile_example.x, random_border_tile_example.y, world, player, display)
 
     farmer.draw()
 
@@ -40,7 +40,7 @@ def main():
             # On gère les touches
             if event.type == pygame.KEYDOWN:
                 farmer.change_destination()
-                farmer.x, farmer.y = farmer.next_tuile()
+                farmer.x, farmer.y = farmer.next_tile()
                 farmer.neighbors_list = farmer.neighbors(farmer.x, farmer.y, farmer.world)
                 farmer.find_current_tile()
 

+ 11 - 1
tiles.py

@@ -16,9 +16,19 @@ class Tile:
         """Affiche la tuile"""
         if self.tiletype == "seed" :
             image = pygame.transform.scale(SEED, (self.width, self.height))
-        else :
+        elif self.tiletype == "green" :
             image = pygame.transform.scale(HEXA, (self.width, self.height))
+        elif self.tiletype == "green_path" :
+            image = pygame.transform.scale(HEXA_PATH, (self.width, self.height))
+        elif self.tiletype == "seed_path" : 
+            image = pygame.transform.scale(SEED_PATH, (self.width, self.height))
         self.display.blit(image, (self.x - self.width // 2, self.y - self.height // 2))
 
+    def to_path(self):
+        """Change le tiletype de la tuile si celle ci est sur le chemin du fermier"""
+        if self.tiletype == "green":
+            self.tiletype = "green_path"
+        elif self.tiletype == "seed":
+            self.tiletype = "seed_path"
         
         

+ 2 - 0
variables.py

@@ -19,6 +19,8 @@ GAP = 8
 # images
 HEXA = image.load(path.join("images/hexa.png"))
 SEED = image.load(path.join("images/seed.png"))
+HEXA_PATH = image.load(path.join("images/hexa_path.png"))
+SEED_PATH = image.load(path.join("images/seed_path.png"))
 
 PLAYER_RU = image.load(path.join("images/player-ru.png"))
 PLAYER_RD = image.load(path.join("images/player-rd.png"))