2014-01-20 103 views
0

我正在編寫一個程序,它從外部文件(level.lev)中讀取並將該文件中的x和o轉換爲紅色和綠色方塊,從而將其轉換爲pygame窗口。代碼用於檢測文本文件中有多少個字符並繪製了許多正方形,但我不知道如何區分x和o作爲單獨變量。下面只有處理這個問題的代碼。Python/Pygame 2.7文本到圖像轉換

level_file = open("level.lev") 

read_num = 0 

for word in level_file: 
    for ch in word: 
     read_num+=1 

while(True): 
    while read_num > 0: 
     screen.blit(x_spr,(((64*read_num)-64),0)) 
     read_num-=1 
+0

如果您的問題的答案解決了您的問題,請接受它。對別人有幫助,也可以節省時間。 – gravetii

回答

0

你的代碼有幾個問題。

既然你有興趣閱讀單個字符,可以減少兩個for循環到一個:

characters = level_file.read() 
for ch in characters: 

不是讀取文件後bliting的x的,它是更好地構建精靈列表。它可以這樣做:

sprites = []  
characters = level_file.read() 
for x in range(len(characters),0,-1): 
    pos = (((64*x)-64),0)) 
    sprites.append((some_sprite,pos)) 

然後,你可以blit他們相應。

for sprite in sprites: 
    screen.blit(sprite[0],sprite[1]) 

在創建精靈列表的過程中,您可以查看char包含的內容,並添加相應的對象。沿着這些線:

for x in range(len(characters)-1,-1,-1): 
    pos = (((64*x)-64),0)) 
    if characters[x] == 'X': 
     sprites.append((x_spr,pos)) 
    else: 
     sprites.append((o_spr,pos))