есть игра с одним основным экраном и одним экраном паузы. Я хочу, чтобы на каждом экране играли разные звуки c, с которых они остановились ранее. Ниже приведен соответствующий раздел моего кода:
while running:
if Options.want_pause:
if load_count == 0 and Options.want_Music: # clicking the button to swap screens resets load_count to 0
mpos = pygame.mixer.music.get_pos() # gets pos of music from main mainwindow
music = pygame.mixer.music.load('Pause music.mp3')
pygame.mixer.music.set_pos(ppos/1000) # plays from previous music position
pygame.mixer.music.play(-1)
load_count = 1
pausewindow(win_width, win_height, width, height)
else:
if load_count == 0 and Options.want_Music:
ppos = pygame.mixer.music.get_pos()
music = pygame.mixer.music.load('Main music.mp3')
try: #starts from beginning the first time, after which mpos will be definied
pygame.mixer.music.set_pos(mpos/1000)
except NameError:
pygame.mixer.music.play(-1)
pygame.mixer.music.play(-1)
load_count = 1
set_dirs(cur_block, width, height)
gamewindow(win_width, win_height, width, height, no)
#etc
, он отлично работает, если я не хочу возобновлять музыку c и просто начать все сначала, (т.е. если я избавлюсь строк get_pos и set_pos), но приведенное выше дает мне следующую ошибку:
Traceback (последний вызов был последним): Файл "C: / Vijay Stuff / Coding stuff / pycharm projects / Летние проекты 2020 / Tetris / Tetris 1.5.2.py ", строка 462, в pygame.mixer.musi c .set_pos (mpos / 1000) pygame.error: set_pos не поддерживается для этого кода c
Я также пытался использовать pygame.mixer.musi c .play (-1, mpos / 1000) (и то же самое для другого), и хотя это не дает ошибки, оно не работает должным образом , В основном это работает, только если я очень быстро захожу на другой экран выхода, что, конечно, бессмысленно. Есть ли этому решение?
Спасибо за любую помощь:)