4

私と友人のチームがこのゲームを作成し、現在 Linux で実行しようとしています。

Aptanaスタジオを使用してWindowsでpython 2.7とPygameを使用して開発しましたが、コードはそこで実行すると完全に機能します。

Linuxにダウンロードすると、ファイルが見つからないと言ってロードされませんでした。次に、WindowsでCMDを介して実行しようとしましたが、同じエラーが発生しました。

これまでのエラーは

Traceback (most recent call last):
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 144, in <module>
    showMenu()
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 107, in showMenu
    menu.init(['Start','About','Quit'], surface)
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 52, in init
    self.create_strukture()        
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 73, in create_strukture
    self.font = pygame.font.Font(self.font_path, self.fontsize)
IOError: unable to read font filename

ソースは https://github.com/ryanteck/RasPiThon/tree/master/Raspberroids/Source%20Codeにあります。

2.7 と 2.6 の両方で発生します。

誰でも助けることができますか?

4

2 に答える 2

5

あなたのフォントパスdata/coders_crux/coders_crux.ttfは相対的です。

ソース ディレクトリ以外のディレクトリからゲームを開始すると、pygame はフォントを見つけられません。


簡単な修正は、次の行をスクリプト ( mainmenu.py ) の先頭に追加することです。

import os
os.chdir(os.path.dirname(os.path.realpath(__file__)))

os.path.realpath(\__file__)スクリプトへのパスを取得し、現在の作業ディレクトリをスクリプトのディレクトリに変更しますos.chdiros.path.dirname

このようにして、使用する相対パスが機能します。

于 2012-07-27T12:57:29.820 に答える
1

PyDevは、プログラムの作業ディレクトリとPYTHONPATH変数を設定します。また、コンソールエンコーディングをOSのデフォルトとは異なるものに設定することもできます。

print self.font_pathFontオブジェクトを作成する前にステートメントを追加し、パスに問題がないかどうかを確認してください。相対パスの場合は、os.path.abspath(詳細についてはos.pathドキュメントを参照)を使用して、何が起こっているのかをよりよく理解することもできます。

于 2012-07-27T12:50:37.193 に答える