Merge remote-tracking branch 'origin/game_assembly' into game_assembly
This commit is contained in:
commit
4a613ccfb6
|
@ -124,7 +124,7 @@ class Renderer:
|
||||||
True, (255, 0, 0)), (0, 30))
|
True, (255, 0, 0)), (0, 30))
|
||||||
self.window.blit(font.SysFont("Arial", 20).render(f"Zoom: {round(self.engine.camera.zoom, 2)}",
|
self.window.blit(font.SysFont("Arial", 20).render(f"Zoom: {round(self.engine.camera.zoom, 2)}",
|
||||||
True, (255, 0, 0)), (0, 60))
|
True, (255, 0, 0)), (0, 60))
|
||||||
self.window.blit(font.SysFont("Arial", 20).render(f"Volume: {self.engine.sound_manager.music_get_volume()}, Pos: {self.engine.sound_manager.music_get_current_song_pos()}s, Index: {self.engine.sound_manager.music_current_index}, Paused: {self.engine.sound_manager.music_is_paused}",
|
self.window.blit(font.SysFont("Arial", 20).render(f"Volume: {self.engine.sound_manager.music_get_volume()}, Pos: {self.engine.sound_manager.music_get_current_song_pos()}s, Index: {self.engine.sound_manager.music_current_index}, Paused: {self.engine.sound_manager.music_is_paused}, Shuffled: {self.engine.sound_manager.music_shuffle_playlist}",
|
||||||
True, (255, 0, 0)), (0, 90))
|
True, (255, 0, 0)), (0, 90))
|
||||||
self.window.blit(font.SysFont("Arial", 20).render(f"Track: {self.engine.sound_manager.music_current_song}",
|
self.window.blit(font.SysFont("Arial", 20).render(f"Track: {self.engine.sound_manager.music_current_song}",
|
||||||
True, (255, 0, 0)), (0, 120))
|
True, (255, 0, 0)), (0, 120))
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from pygame import mixer
|
from pygame import mixer
|
||||||
|
from random import randint
|
||||||
|
|
||||||
class SoundManager:
|
class SoundManager:
|
||||||
def __init__(self, music_base_volume: float):
|
def __init__(self, music_base_volume: float):
|
||||||
|
@ -9,6 +10,7 @@ class SoundManager:
|
||||||
self.music_current_song = ""
|
self.music_current_song = ""
|
||||||
self.music_play_playlist = False
|
self.music_play_playlist = False
|
||||||
self.music_current_index = 0
|
self.music_current_index = 0
|
||||||
|
self.music_shuffle_playlist = True
|
||||||
|
|
||||||
self.music_before_pause_pos = 0
|
self.music_before_pause_pos = 0
|
||||||
self.music_before_pause_song = ""
|
self.music_before_pause_song = ""
|
||||||
|
@ -30,7 +32,6 @@ class SoundManager:
|
||||||
if self.music_next_request:
|
if self.music_next_request:
|
||||||
self.music_next_request = False
|
self.music_next_request = False
|
||||||
mixer.music.fadeout(1)
|
mixer.music.fadeout(1)
|
||||||
print(self.music_playlist)
|
|
||||||
|
|
||||||
if len(self.music_playlist) == 0:
|
if len(self.music_playlist) == 0:
|
||||||
pass
|
pass
|
||||||
|
@ -40,16 +41,27 @@ class SoundManager:
|
||||||
if self.music_current_song in self.music_playlist:
|
if self.music_current_song in self.music_playlist:
|
||||||
just_played_index = self.music_playlist.index(self.music_current_song)
|
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
|
if self.music_shuffle_playlist and len(self.music_playlist) != 1:
|
||||||
|
while True:
|
||||||
|
new_index = randint(0, len(self.music_playlist) - 1)
|
||||||
|
if new_index != just_played_index:
|
||||||
|
break
|
||||||
|
|
||||||
|
self.music_current_index = new_index
|
||||||
|
self.__music_play(self.music_playlist[new_index])
|
||||||
|
|
||||||
|
elif 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_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]) # Recommence depuis le début de la playlist
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.music_current_index = just_played_index + 1
|
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
|
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
|
else: # Song removed from playlist, no idea what was the index, starting again from start or from random index if playlist_shuffle = True
|
||||||
self.music_current_index = 0
|
new_index = randint(0, len(self.music_playlist) - 1)
|
||||||
self.__music_play(self.music_playlist[0])
|
self.music_current_index = new_index
|
||||||
|
self.__music_play(self.music_playlist[new_index])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,5 +117,8 @@ class SoundManager:
|
||||||
def music_stop_playlist(self):
|
def music_stop_playlist(self):
|
||||||
self.music_play_playlist = False
|
self.music_play_playlist = False
|
||||||
|
|
||||||
|
def music_playlist_set_shuffle(self, shuffle: bool):
|
||||||
|
self.music_shuffle_playlist = shuffle
|
||||||
|
|
||||||
def music_next(self):
|
def music_next(self):
|
||||||
self.music_next_request = True
|
self.music_next_request = True
|
||||||
|
|
Loading…
Reference in a new issue