【问题标题】:Python/Pygame 2.7 Text to image conversionPython/Pygame 2.7 文本到图像的转换
【发布时间】:2014-01-20 04:11:54
【问题描述】:

我正在编写一个程序,它从外部文件 (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

【问题讨论】:

  • 如果您的问题的答案解决了您的问题,请接受它。对他人有帮助并节省时间。

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


【解决方案1】:

您的代码中有几个问题。

由于您对读取单个字符感兴趣,因此可以将两个 for 循环减少为一个:

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

与其在读取文件后对 x 进行 bliting,不如构造一个 sprite 列表。可以这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2014-11-19
    • 1970-01-01
    • 2016-12-04
    • 2016-04-02
    相关资源
    最近更新 更多