2016-12-05 2 views
0
spielen

So habe ich dieses Stück Code, der einen Ton spielen, aber es funktioniert nur, wenn es im selben Verzeichnis istPyglet nur der Ton aus demselben Verzeichnis

# Doesnt work 
current_directory = os.getcwd() 
path = os.path.join(current_directory + "\sounds\\monster_roar.wav") 
music = pyglet.resource.media(path) 

# does work 
music = ("monster_roar.wav") 
#music.play() 

pyglet.resource.ResourceNotFoundException: Ressource „C : \ Benutzer \ Joshua Nixon \ Dokumente \ college_work \ erweitertes_Projekt \ Spiel \ neu \ Sounds \ Monster_roar.wav "wurde nicht auf dem Pfad gefunden. Stellen Sie sicher, dass der Dateiname die korrekte Ausrichtung aufweist.

Was fehlt mir?

Antwort

0

Sie sollten in solchen Fällen einen absoluten Pfad anstelle eines relativen Pfades in Betracht ziehen. Allerdings können Sie Ihre Fehler wahrscheinlich mit der folgenden festgesetzt:

Statt mit music = pyglet.resource.media(path)

... versuchen music = pyglet.media.load(path) verwenden.

+0

ich liebe dich, funktioniert. Können Sie den Unterschied zwischen dem relativen und dem absoluten Pfad erklären? Havent hat diese Begriffe gehört –

+0

Wenn Sie einen relativen Pfad wie '\ sounds \ monster_roar.wav' verwenden, muss jede Funktion, die Sie verwenden, den vollständigen Pfad an einem bestimmten Punkt berechnen. Dies kann fehleranfällig sein, insbesondere wenn Sie Ihr Programm auf verschiedenen Plattformen ausführen. Ein absoluter Pfad wäre etwas wie 'C: \ Benutzer \ Bob \ Game \ sounds \ monster_roar.wav'. Sie würden dies jedoch nicht als String ausgeben, sondern mit os.path.abspath ("sounds \ monster_roar.wav") berechnen, was zu unterschiedlichen Ergebnissen auf verschiedenen Plattformen führen würde. –

+0

Ich würde mich nicht zu sehr um Ihren Fall kümmern, aber die Verwendung eines absoluten Pfades erlaubt es Ihnen im Grunde zu vermeiden, dass Sie verschiedene Pfade verbinden müssen (d. H. Die Wahrscheinlichkeit eines Fehlers verringert). –

Verwandte Themen