Pygame не может открывать файлы
Я пытался открыть файлы «с открытым как», с wave.open как «открыть один файл без создания словаря.как sound = Pygame.mixer.Sound('sounds/example.wav')
после Pygame.mixer.init()
spy_vs_spy.py
import pygame
import settings
import game_functions as gf
import resources
import sounds
from spy_white import Spy_white
from spy_black import Spy_black
from settings import Settings
def run_game():
# Initialize pygame, settings, and screen object.
pygame.mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096)
pygame.init() #turn all of pygame on.
pygame.mixer.init()
print(pygame.mixer.get_init())
ai_settings = Settings()
screen = pygame.display.set_mode(
(ai_settings.screen_width, ai_settings.screen_height),
pygame.HWSURFACE|pygame.DOUBLEBUF)
pygame.display.set_caption("Spy vs Spy 2019")
resources.load_images(ai_settings, screen)
resources.load_sounds()
# Make Spy white.
spy_white = Spy_white(ai_settings, screen)
# Make Spy black.
spy_black = Spy_black(ai_settings, screen)
# Start music
sounds.play_music()
# Start the main loop for the game.
while True:
gf.check_events(spy_white, spy_black)
spy_white.update()
spy_black.update()
gf.update_screen(ai_settings, screen, spy_white, spy_black)
run_game()
resources.py
sound_library = {}
def load_sounds():
global sound_library
"""Load all sounds from subdirectories in a dictionary"""
for dirpath, dirnames, filenames in os.walk('sounds'):
for name in filenames:
if name.endswith('.wav'):
key = name[:-4]
snd = pygame.mixer.Sound(os.path.join(dirpath, name))
sound_library[key] = snd
for sound in sound_library:
print(sound)
print(sound_library)
Я намеревался предварительно загрузить все файлы wav как звукв словаре, так что я могу вызвать звук по событию, просто дав ключ в словаре библиотеки звуков.и затем выполните resources.sound_library['sound_to_play'].play()
Traceback (последний вызов был последним): Файл "/Users/ruudkooistra/Desktop/project_folder/spy_vs_spy_2019/spy_vs_spy.py", строка 42, в файле run_game () "/ Users /ruudkooistra / Desktop / project_folder / spy_vs_spy_2019 / spy_vs_spy.py ", строка 24, в файле run_game resources.load_sounds ()"mixer.Sound (os.path.join (dirpath, name)) pygame.error: Невозможно открыть файл 'sounds / spy_fly.wav' [Завершено в 1.3s с кодом выхода 1]
[cmd: ['/ usr/ local / bin / python3 ',' -u ',' /Users/ruudkooistra/Desktop/project_folder/spy_vs_spy_2019/spy_vs_spy.py ']] [dir: / Users / ruudkooistra / Desktop / project_folder / spy_vs_spy_2019]/Frameworks/Python.framework/Versions/3.7/bin:/Users/ruudkooistra/anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/bin:/bin:/usr/sbin:/ sbin: / usr / local / bin]
когда я изменяю код, как показано ниже, pygame.mixer.music.load (файл) и .play () работает, но Pygame.mixer.Sound (файл) все еще не работает.Кстати, когда я делаю это, есть ссылки на файл, который хранится в словаре, и я хочу динамически хранить данные в куче в виде структуры дерева.Но я новичок, и, возможно, есть лучшие способы обработки звуков в игре с Pygame.Он отлично работает с изображениями.
def load_sounds ():
global sound_library
"""Load all sounds from subdirectories in a dictionary"""
for dirpath, dirnames, filenames in os.walk('sounds'):
for name in filenames:
if name.endswith('.wav'):
key = name[:-4]
snd = os.path.join(dirpath, name)
sound_library[key] = snd
for sound in sound_library:
print(sound)
print(sound_library)
spy_fly электрифицированное time_bomb_countdown wave_stick search_01 time_bomb_explode beat timer_01 пистолета_трап_сет пистолета_пойнт бомба_эксплоид ходячий spy_spy_spy_spy_spy_spy'sounds / spy_fly.wav', 'electrified': 'sounds / electrified.wav', 'time_bomb_countdown': 'sounds / time_bomb_countdown.wav', 'wave_stick': 'sounds / wave_stick.wav', 'search_01': 'sounds/search_01.wav ',' time_bomb_explode ':' sounds / time_bomb_explode.wav ',' beat ':' sounds / beat.wav ',' timer_01 ':' sounds / timer_01.wav ',' pistol_trap_set ':' sounds / pistol_trap_set.wav ',' pistol_trapped ':' sounds / pistol_trapped.wav ',' hit ':' sounds / hit.wav ',' bomb_explode ':' sounds / bomb_explode.wav ','alking': 'sounds /alking.wav',' spy_vs_spy_theme ':' sounds / spy_vs_spy_theme.wav ',' found_item ':' sounds / found_item.wav ',' trap_set ':' sounds / trap_set.wav ',' lift_off ':' sounds / lift_off.wav ',' sounds / lift_off.wav ','door': 'sounds / door.wav', 'spy_angel ':' sounds / spy_angel.wav '}