2016-05-11 7 views
1

だからpygameのを使用してゲームを作成しようとしているIMと私はosモジュールやOSを使用する場合、私はいくつかの理由のスクリプトに私のゲームファイルをソートするフォルダ、画像、アニメーションなどなぜ、os.path.joinをpygame/pyganimと一緒に使用するとエラーが発生しますか?

を使って好き

をpyganim。これは私の現在のコード

# Imports 
import pygame 
import os 
import math 
import pyganim 
# -- Initialize the Surface -- 
# Startup 
pygame.init() 

# Screen 
size = (500, 500) 
screen = pygame.display.set_mode(size) 
pygame.display.set_caption = ("Images - Rewrite") 
pygame.mouse.set_visible(True) 
clock = pygame.time.Clock() 

# -- Assign Global Variables -- 
#Sets the color of pure white to a variable to be called 
WHITE = (255, 255, 255) 
#Sets the color of pure black to a variable to be called 
BLACK = (0, 0, 0) 
#Sets the background to an image 
Menu_Background = pygame.image.load(os.path.join("Images", "menu_background.png")) 
#Sets the player to an image 
Player = pygame.image.load(os.path.join("Images", "player.png")) 
#Sets the pointer to an image 
Pointer = pygame.image.load(os.path.join("Images", "pointer.png")) 
#Sets the dark and bright menu go button to an image 
Menu_Go_Dark = pygame.image.load(os.path.join("Images", "go_dark.png")) 
Menu_Go_Bright = pygame.image.load(os.path.join("Images", "go_bright.png")) 
#Sets the dark and bright menu exit button to an image 
Menu_Exit_Dark = pygame.image.load(os.path.join("Images", "exit_dark.png")) 
Menu_Exit_Bright = pygame.image.load(os.path.join("Images", "exit_bright.png")) 
#Assigns all the Arcflash text frames to a list 
Arcflash_list = [os.path.join("Images\Animation\Arcflash", "Arcflash_001.png"), 
       os.path.join("Images\Animation\Arcflash", "Arcflash_002.png"), 
       os.path.join("Images\Animation\Arcflash", "Arcflash_003.png"), 
       os.path.join("Images\Animation\Arcflash", "Arcflash_004.png"), 
       os.path.join("Images\Animation\Arcflash", "Arcflash_005.png"), 
       os.path.join("Images\Animation\Arcflash", "Arcflash_006.png")] 
#Sets the pyganimation list up for the arcflash text 
Anim_Arcflash = pyganim.PygAnimation([(Arcflash_list[0], 100), (Arcflash_list[1], 100), (Arcflash_list[2], 100), (Arcflash_list[3], 100), (Arcflash_list[4]), (Arcflash_list[5])]) 
の抜粋である私はエラーを取得pyganimationとアニメーションオブジェクトを作成しようとしながら、ファイルがである

 File "H:\Projects\Arcflash\Arcflash.py", line 35, in <module> 
     Pyganim_Arcflash = pyganim.PygAnimation([(os.path.join("Images\Animation\Arcflash", 'Arcflash_001'))]) 
     File "C:\Python27\lib\site-packages\pyganim\__init__.py", line 165, in __init__ 
     frame = (frames[i][0], int(frames[i][1])) 
    ValueError: invalid literal for int() with base 10: 'm' 

をフォルダを見つけるためpath.join 210

私の目標は、pyganimにフォルダ内の画像を取得させ、代わりにエラーが出るようにすることです。 ?

(この質問は、または、このウェブサイトに慣れていないイムうまくフォーマットしてもしなくてもよいと私の最後の質問はよく受信されてhaventは)

編集1:IVEはこの

1を修正しようとしただけのもの:リストを使用していない

2:私は、それは論理的にフォルダを使用していない

実際にこのエラーを修正するようだ唯一のことに行くと思うだろう場所に基づいて、多くのdiffirent場所でos.path.joinを置きますしかし、th見た目はかなりひどく、そのアプローチには興味がありません。 Idではなく、むしろ、すべてのpyganimを使用していません。

+0

'frames [i] [1]'は文字列 ''m''です。おそらく 'frames [i]'はもっと大きな文字列です。 – TigerhawkT3

+2

PygAnimationコンストラクタはタプルのリストを期待していますが、 '(Arcflash_list [4])、(Arcflash_list [5])'という2つの文字列を渡したからです。それらのフレームに整数を追加するのを忘れたので、pygameが 'frames [i] [1]'でタプルから整数を取得しようとすると、 'Images \ Animation \ Arcflash \ Arcflash_005.png'という文字列がインデックスされます。 –

+0

私のスクリプトと同じフォルダにすべてのアニメーションを入れる必要はなく、実際にはこの問題を回避する可能性があります。それは愚かに聞こえるかもしれませんが、私は物事をどのように整理するか本当に慎重です。 –

答えて

0

これは、PygAnimationコンストラクタにはタプルのリストが必要ですが、2つの文字列、つまり(Arcflash_list[4]), (Arcflash_list[5])が渡されているからです。それらのフレームに整数を追加するのを忘れてしまったので、pygameがタプルの整数をframes[i][1]で取得しようとすると、代わりに文字列Images\Animation\Arcflash\Arcflash_005.pngのインデックスが終了します。

関連する問題