FIXED SOUND MANAGER AND MAIN

This commit is contained in:
Adastram 2024-01-09 08:02:33 +01:00
parent df86633f8e
commit 7c6031a713
2 changed files with 32 additions and 10 deletions

View file

@ -13,6 +13,7 @@ class SoundManager:
self.music_before_pause_pos = 0 self.music_before_pause_pos = 0
self.music_before_pause_song = "" self.music_before_pause_song = ""
self.music_is_paused = False self.music_is_paused = False
self.music_next_request = False
self.music_pos_delay = 0 self.music_pos_delay = 0
@ -25,20 +26,31 @@ class SoundManager:
self.time = self.tick * delta self.time = self.tick * delta
if self.music_play_playlist and not self.music_is_paused: # Musique de fond if self.music_play_playlist and not self.music_is_paused: # Musique de fond
if not mixer.music.get_busy(): if not mixer.music.get_busy() or self.music_next_request:
if self.music_next_request:
self.music_next_request = False
mixer.music.fadeout(1)
print(self.music_playlist)
if len(self.music_playlist) == 0: if len(self.music_playlist) == 0:
pass pass
elif self.music_current_song == "": elif self.music_current_song == "":
self.__music_play(self.music_playlist[0]) self.__music_play(self.music_playlist[0])
else: else:
just_played_index = self.music_playlist.index(self.music_current_song) if self.music_current_song in self.music_playlist:
if len(self.music_playlist) - 1 <= just_played_index: # Dernier son de la playlist / la playlist a rétréci entre temps just_played_index = self.music_playlist.index(self.music_current_song)
if len(self.music_playlist) - 1 <= just_played_index: # Dernier son de la playlist / la playlist a rétréci entre temps
self.music_current_index = 0
self.__music_play(self.music_playlist[0]) # Recommence depuis le début de la playlist
else:
self.music_current_index = just_played_index + 1
self.__music_play(self.music_playlist[self.music_current_index]) # Joue la musique suivante dans la playlist
else: # Song removed from playlist, no idea what was the index, starting again from start
self.music_current_index = 0 self.music_current_index = 0
self.__music_play(self.music_playlist[0]) # Recommence depuis le début de la playlist self.__music_play(self.music_playlist[0])
else:
self.music_current_index = just_played_index + 1
self.__music_play(self.music_playlist[self.music_current_index]) # Joue la musique suivante dans la playlist
def music_get_volume(self): def music_get_volume(self):
@ -84,7 +96,7 @@ class SoundManager:
def music_remove_from_playlist(self, song_path: str = None, index: int = None): def music_remove_from_playlist(self, song_path: str = None, index: int = None):
if song_path: if song_path:
index = self.music_playlist.index(song_path) index = self.music_playlist.index(song_path)
if index: if index != None:
self.music_playlist.pop(index) self.music_playlist.pop(index)
def music_start_playlist(self): def music_start_playlist(self):
@ -92,3 +104,6 @@ class SoundManager:
def music_stop_playlist(self): def music_stop_playlist(self):
self.music_play_playlist = False self.music_play_playlist = False
def music_next(self):
self.music_next_request = True

View file

@ -19,7 +19,7 @@ class Game(Engine):
self.load_boss_fight_assets() self.load_boss_fight_assets()
self.spawn_mobs() self.spawn_mobs()
self.DEBUG_MODE = True self.DEBUG_MODE = False
self.game_state = GameState.MAIN_MENU self.game_state = GameState.MAIN_MENU
@ -29,12 +29,19 @@ class Game(Engine):
self.event_handler.register_button_area((0, 0, 0.1, 0.1), lambda : print("salut"), 0) self.event_handler.register_button_area((0, 0, 0.1, 0.1), lambda : print("salut"), 0)
self.sound_manager.music_add_to_playlist(".\\assets\\OST\\Main Title (Y'as pas de boss la donc jpp le mettre pour un fight).mp3")
self.sound_manager.music_start_playlist()
self.setup_main_menu() self.setup_main_menu()
def start_game(self): def start_game(self):
self.game_state = GameState.NORMAL self.game_state = GameState.NORMAL
self.menu_manager.hide() self.menu_manager.hide()
self.sound_manager.music_remove_from_playlist(".\\assets\\OST\\Main Title (Y'as pas de boss la donc jpp le mettre pour un fight).mp3")
self.sound_manager.music_add_to_playlist(".\\assets\\OST\\Bruit de foret pour yannis.mp3")
self.sound_manager.music_next()
def setup_main_menu(self): def setup_main_menu(self):
"""Crée les éléments du menu principal.""" """Crée les éléments du menu principal."""
menu = Menu() menu = Menu()