2017-12-09 4 views
1

Ich arbeite an einem einfachen Snake - Spiel in Python, und es funktioniert wie beabsichtigt hier zu Hause, aber wenn ich den Code auf GitHub setzen, findet es nicht den Pfad zu den Songs, ich möchte diesen Pfad relativ, absolut absolut machen, so dass es auf jedem Computer funktioniert. HierWie man den Pfad zu Liedern in Pygame relativ macht

ist der Teil des Codes für die Song-Dateien -

def game_sound(s): 
     """ Include the game sfx and music""" 
     if s == 0: 
      pygame.mixer.music.load("background.ogg") 
      pygame.mixer.music.play(-1) 
     elif s == 1: 
      pygame.mixer.Sound("eating.wav").play() 
     elif s == 2: 
      pygame.mixer.Sound("game-over.wav").play() 

TL - DR- Es funktioniert hier zu Hause und nirgendwo sonst, Im einen Weg zu finden versucht, indem sie den Pfad relativ zu beheben, dass Ich weiß nicht wie. Kann jemand helfen?

+0

vielleicht überprüft hier: https://Stackoverflow.com/q/918154/7766131 – swimingduck

+0

hat nicht funktioniert @swimingduck, danke trotzdem – Mateus

+0

Wenn Sie Code in einem anderen Ordner als Spielordner ausführen, dann müssen Sie den vollständigen Pfad zum Spielordner finden und zu Lieddateien beitreten. – furas

Antwort

1

Standardmethode ist real Weg zu finden, mit Anwendung in den Ordner

import os, sys 

APP_FOLDER = os.path.dirname(os.path.realpath(sys.argv[0])) 

Und es später verwenden realen Pfad erstellen

full_path = os.path.join(APP_FOLDER, "eating.wav") 

pygame.mixer.Sound(full_path).play() 

zu Datei Oder Sie haben "current working directory" (CWD) zur Anwendung ändern Mappe.

os.chdir(APP_FOLDER) 

pygame.mixer.Sound("eating.wav").play() 

können Sie aktuelles Arbeitsverzeichnis überprüfen mit

print(os.getcwd()) 

BTW: ohne diese Methode Problem ist nicht nur, wenn Sie auf anderen Computern laufen, aber auch beim Ausführen von anderen Ordnern auf der gleiche Computer - so macht es Problem, wenn Sie Verknüpfung/Symbol auf dem Desktop erstellen, die Programm wie python game_folder/game.py

Verwandte Themen