class Game: def __init__(self): # definir si le jeu a commencer ou non self.is_playing = False self.all_players = pygame.sprite.Group() # generer notre joueur self.player = Player(self) self.all_players.add(self.player) # generer l'evenement self.comet_event = CometFallEvent(self) # definir un groupe de monsters self.all_monsters = pygame.sprite.Group() # gerer le son self.sound_manager = SoundManager() # mettre le score à zero self.score = 0 self.pressed = {} def start(self): self.is_playing = True self.spawn_monster(Mummy) self.spawn_monster(Mummy) self.spawn_monster(Alien) def add_score(self, score=10): self.score += score def game_over(self): # remettre le jeu à neuf # retirer le monstre self.all_monsters = pygame.sprite.Group() self.comet_event.all_comets = pygame.sprite.Group() self.player.health = self.player.max_health self.comet_event.reset_percent() self.is_playing = False self.score = 0 # joueur le son self.sound_manager.play('game_over') def update(self, surface): # afficher le score sur l'ecran font = pygame.font.SysFont("monospace", 16, bold=True) score_text = font.render( f"Score : {self.score}", 1, (0, 0, 0), ) surface.blit(score_text, (20, 20)) # appliquer l'image de mon joeur surface.blit(self.player.image, self.player.rect) # actualiser la barre de vie du joueur self.player.update_health_bar(surface) # actualiser la barre d'evenment du jeu self.comet_event.update_ber(surface) # actualiser l'animation du joueur self.player.update_animation() # recuperer les projectiles que le joueur lance for projectile in self.player.all_projectille: projectile.move() # recuperer les monstres de notre jeu for monster in self.all_monsters: monster.forward() monster.update_health_bar(surface) monster.update_animation() # recuperer le comet du jeu for comet in self.comet_event.all_comets: comet.fall() # appliquer l'ensemble des image du projectile self.player.all_projectille.draw(surface) # appliquer l'ensemble des images du groupe monster self.all_monsters.draw(surface) # appliquer l'ensemble des image du groupe comet self.comet_event.all_comets.draw(surface) # pour verifier si le joueur souhaite aller à gauche ou à droite if self.pressed.get( pygame.K_RIGHT ) and self.player.rect.x < surface.get_width() - 200: self.player.move_rigth() elif self.pressed.get(pygame.K_LEFT) and self.player.rect.x > 0: self.player.move_left() def spawn_monster(self, monster_name): self.all_monsters.add(monster_name.__call__(self)) def check_collision(self, sprite, groupe): return pygame.sprite.spritecollide(sprite, groupe, False, pygame.sprite.collide_mask)
class Game: def __init__(self): #definir si le jeu a commencé self.is_playing = False #générer le joueur self.all_players = pygame.sprite.Group() self.player = Player(self) self.all_players.add(self.player) #APPEL MESSAGERIE self.message = Message(self) #gérer l'event self.comet_event = CometFallEvent(self) #groupe de monstre self.all_monsters = pygame.sprite.Group() self.score = 0 self.pressed = {} self.font = pygame.font.Font("assets/font.ttf", 25) self.sound_manager = SoundManager() def start(self): self.is_playing = True #self.spawn_monster(BadWorm) #self.spawn_monster(BadWorm) #self.spawn_monster(Boss) def game_over(self): #remettre le jeu à neuf, retirer les monstres, remettre le joeueur à 100 vie, jeu en attente self.all_monsters = pygame.sprite.Group() self.comet_event.all_comets = pygame.sprite.Group() self.player.health = self.player.max_health self.comet_event.reset_percent() self.is_playing = False self.score = 0 self.sound_manager.play('game_over') def add_score(self, points=10): self.score += points def update(self, screen): #afficher le score sur l'ecran score_text = self.font.render(f"Score: {self.score}", 1, (0, 0, 0)) screen.blit(score_text, (20, 20)) #AFFICHAGE MESSAGERIE self.message.init_messagerie(screen) #appliquer image du joueur screen.blit(self.player.image, self.player.rect) #actualiser la barre de vie du joueur self.player.update_health_bar(screen) #actualiser la barre d'event self.comet_event.update_bar(screen) #actualiser l'animation du joueur self.player.update_animation() #recup les projectiles du joueur for projectile in self.player.all_projectiles: projectile.move() #recup les monstres du jeu for monster in self.all_monsters: monster.forward() monster.update_health_bar(screen) monster.update_animation() #recup les comets for comet in self.comet_event.all_comets: comet.fall() #appliquer les projectiles self.player.all_projectiles.draw(screen) #appliquer l'ensemble des images de mon groupe de monstre self.all_monsters.draw(screen) #appliquer l'ensemble des images de mon groupe de comettes self.comet_event.all_comets.draw(screen) #verfier si le joueur souhaite aller à gauche ou à droite ou sauter if self.pressed.get( pygame.K_RIGHT ) and self.player.rect.x + self.player.rect.width < screen.get_width(): self.player.move_right() if self.pressed.get(pygame.K_LEFT) and self.player.rect.x > 0: self.player.move_left() #CODE JUMP if self.pressed.get(pygame.K_UP): self.player.jump() def check_collision(self, sprite, group): return pygame.sprite.spritecollide(sprite, group, False, pygame.sprite.collide_mask) def spawn_monster(self, monster_class_name): self.all_monsters.add(monster_class_name.__call__(self))
class Game: def __init__(self): # Definir si notre jeu à commencé ou non self.is_playing = False # Generer notre joueur self.all_players = pygame.sprite.Group() self.player = Player(self) self.all_players.add(self.player) # Générer l'évenement self.comet_event = CometFallEvent(self) # Creez un groupe de monstre self.all_monsters = pygame.sprite.Group() # gerer le son self.sound_manager = SoundManager() self.font = pygame.font.Font("assets/my_custom_font.ttf", 25) #mettre le score à 0 self.score = 0 self.pressed = {} def start(self): self.is_playing = True self.spawn_monster(Mummy) self.spawn_monster(Mummy) self.spawn_monster(Alien) def add_score(self, points=10): self.score += points def game_over(self): # Remettre le jeu à neuf , retirer les monstre , remettre le joueur à 100 de vie , jeu en attente self.all_monsters = pygame.sprite.Group() self.comet_event.all_comets = pygame.sprite.Group() self.player.health = self.player.max_health self.comet_event.reset_percent() self.is_playing = False self.score = 0 # jouer le son self.sound_manager.play('game_over') def update(self, screen): #Afficher le score sur l'écran score_text = self.font.render(f"Score : {self.score}", 1, (0, 0, 0)) screen.blit(score_text, (20, 20)) # Appliquer l'image de mon joueur screen.blit(self.player.image, self.player.rect) # Actualiser la barre de vie de mon joueur self.player.update_healht_bar(screen) # Actualiser la barre d'évenement du jeu self.comet_event.update_bar(screen) # Actualiser l'animation du joueur self.player.update_animation() # Récupérer les porjectile du joueur for projectile in self.player.all_projectiles: projectile.move() # Récupérer les monstre de notre jeu for monster in self.all_monsters: monster.forward() monster.update_healht_bar(screen) monster.update_animation() # Récupérer les comets de notre jeu for comet in self.comet_event.all_comets: comet.fall() # Appliquer l'enssemble des image de mon groupe de projectile self.player.all_projectiles.draw(screen) # Appliquer l'enssemble des images de mon groupe de monstre self.all_monsters.draw(screen) # Appliquer l'ensemble des image de mon groupe de comettes self.comet_event.all_comets.draw(screen) # verifier si le joueur souhaite allez à gauche ou à droite if self.pressed.get( pygame.K_RIGHT ) and self.player.rect.x + self.player.rect.width < screen.get_width(): self.player.move_right() elif self.pressed.get(pygame.K_LEFT) and self.player.rect.x > 0: self.player.move_left() def check_collision(self, sprite, group): return pygame.sprite.spritecollide(sprite, group, False, pygame.sprite.collide_mask) def spawn_monster(self, monster_class_name): self.all_monsters.add(monster_class_name.__call__(self))