phantomcastle: add background music

This commit is contained in:
2024-04-06 22:50:23 +03:00
parent ee2c47dc2f
commit a985199441
6 changed files with 56 additions and 2 deletions

View File

@@ -0,0 +1,37 @@
import pygame
from common import SingletonMeta
class BackgroundSound(pygame.mixer.Sound, metaclass=SingletonMeta):
def __init__(self, filename):
super().__init__(filename)
self.set_volume(0.5)
self._muted = False
self._played = False
def play(self):
if not self._played:
super().play(loops=-1)
self._played = True
def mute(self):
self._muted = True
self.set_volume(0)
def unmute(self):
self._muted = False
self.set_volume(0.5)
@property
def muted(self):
return self._muted
@muted.setter
def muted(self, value):
if value:
self.mute()
else:
self.unmute()
def toggle_mute(self):
self.muted = not self.muted