Python / Pygame 2.7文本到图像转换

时间:2014-01-20 04:11:55

标签: python python-2.7 pygame sprite game-engine

我正在编写一个从外部文件(level.lev)读取的程序,并将该文件中的x和o转换为红色和绿色方块,相应地转换为pygame窗口。该代码适用于检测文本文件中有多少个字符并绘制了多个方块,但我不知道如何区分x和o作为单独的变量。只有处理此问题的代码如下所示。

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

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个问题。

由于您有兴趣阅读单个字符,因此可以将两个for循环缩减为一个:

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

不是在读取文件后显示x,最好构造一个精灵列表。可以这样做:

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

然后你可以相应地搞砸他们。

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))