|
@@ -13,12 +13,17 @@ class Player:
|
|
|
self.picture = PLAYER_RU
|
|
self.picture = PLAYER_RU
|
|
|
self.world: World = world
|
|
self.world: World = world
|
|
|
self.next_move = "up"
|
|
self.next_move = "up"
|
|
|
|
|
+ self.moving = True
|
|
|
|
|
+ self.egg = 0
|
|
|
|
|
+ self.actions_till_next_farmer = 10
|
|
|
|
|
+ self.last_tile = self.find_current_tile()
|
|
|
|
|
|
|
|
def draw(self):
|
|
def draw(self):
|
|
|
"""Affiche le joueur"""
|
|
"""Affiche le joueur"""
|
|
|
image = pygame.transform.scale(self.picture, (self.world.tile_width, self.world.tile_height))
|
|
image = pygame.transform.scale(self.picture, (self.world.tile_width, self.world.tile_height))
|
|
|
self.display.blit(image, (self.x - self.world.tile_width // 2, self.y - self.world.tile_height // 2)) #la valeur ici est arbitraire mais marche. elle est la pour centrer l'affichage du joueur sur une tuile, a changer dans le futur
|
|
self.display.blit(image, (self.x - self.world.tile_width // 2, self.y - self.world.tile_height // 2)) #la valeur ici est arbitraire mais marche. elle est la pour centrer l'affichage du joueur sur une tuile, a changer dans le futur
|
|
|
-
|
|
|
|
|
|
|
+ # On dessine l'oeuf si besoin
|
|
|
|
|
+
|
|
|
|
|
|
|
|
def move(self, direction: str):
|
|
def move(self, direction: str):
|
|
|
"""Modifie les coordonnées x et y du joueur en fonction de la direction donnée"""
|
|
"""Modifie les coordonnées x et y du joueur en fonction de la direction donnée"""
|
|
@@ -84,3 +89,41 @@ class Player:
|
|
|
self.next_move = "up"
|
|
self.next_move = "up"
|
|
|
self.move("right")
|
|
self.move("right")
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ def find_current_tile(self):
|
|
|
|
|
+ """Renvoie la tuile sur laquelle se trouve le joueur"""
|
|
|
|
|
+ found = False
|
|
|
|
|
+ i = 0
|
|
|
|
|
+ while not found and i < len(self.world.pos_list):
|
|
|
|
|
+ if self.world.pos_list[i] == {"x": self.x, "y": self.y}:
|
|
|
|
|
+ found = True
|
|
|
|
|
+ else:
|
|
|
|
|
+ i += 1
|
|
|
|
|
+
|
|
|
|
|
+ if found:
|
|
|
|
|
+ return self.world.tiles_list[i]
|
|
|
|
|
+ else:
|
|
|
|
|
+ print("Aucune tuile trouvée")
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ def action(self):
|
|
|
|
|
+ """L'action de ce tour"""
|
|
|
|
|
+ tile = self.find_current_tile()
|
|
|
|
|
+ if (tile.x, tile.y) != (self.last_tile.x, self.last_tile.y):
|
|
|
|
|
+ if tile.tiletype == "seed":
|
|
|
|
|
+ self.moving = False
|
|
|
|
|
+ self.seed()
|
|
|
|
|
+ tile.tiletype = "green"
|
|
|
|
|
+ self.world.spawn_new_seed()
|
|
|
|
|
+
|
|
|
|
|
+ self.actions_till_next_farmer -= 1
|
|
|
|
|
+ self.last_tile = tile
|
|
|
|
|
+ self.moving = True
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ def seed(self):
|
|
|
|
|
+ if self.egg == 0:
|
|
|
|
|
+ self.egg = 1
|
|
|
|
|
+ else:
|
|
|
|
|
+ print("Il y a déjà un oeuf")
|
|
|
|
|
+
|