1

「pygame.image.load」を使用して Pygame で引数を渡す方法はありますか?

私は多くの異なることを試し、それを理解しようと今週末の多くを費やしました. 他のstackoverflow Q&Aを検索しましたが、どこにも行きませんでした。

「os.path.join」、「os.path.normpath」などを試してみましたが、まだわかりません。

コードは次のとおりです。

import os, pygame
load_image = pygame.image.load(os.path.join('\\test', 'energy.png'))

そして、「test」フォルダーが C:\ にある限り正常に動作しますが、他の場所に移動するとすぐに ol' pygame.error: Couldn't open \test\energy.png エラーが発生します.

基本的に私が求めているのは、フォルダー、スクリプト、および画像をすべて C:\ に配置せずに Pygame スクリプト (具体的には pygame.image.load コード) を動作させる方法はありますか?

最終的には、私が取り組んでいるゲームの cx_freeze アプリを作成したいと考えており、ユーザーが希望する任意の場所にフォルダーを配置できるようにしたいと考えています。

Windows 7 ラップトップで Python 3.3 を使用しています。ありがとう。

4

2 に答える 2

2

ついに!わかりました。

他のモジュールをインポートするだけでなく、このコードを含めて機能させ、C:\ にないイメージをロードする必要があります。

import os
from os.path import dirname, realpath, abspath

そして、ここに私の最終的なコードがあります:

__file__ = "game_folder"    # <-- This code is needed for CX_freeze, to avoid NameError.
file_path = os.path.join(dirname(__file__), "images", "energy.png")

ご協力いただきありがとうございます!

于 2013-11-02T15:22:22.067 に答える
2

あなたのpythonスクリプトが

f:/bar/game.py

そして、あなたは持っていenergy.pngます

f:/bar/images/energy.png

game.py次に使用します

path = os.path.join("images", "energy.png")
energy = pygame.image.load(path)
于 2013-10-28T06:57:50.863 に答える