2014-01-20 105 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))