我正在编写一个从外部文件(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
答案 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))