首页 > 解决方案 > Pygame 从 .txt 文件中读取字符串,然后用作颜色错误

问题描述

我正在使用 pygame 为游戏制作背景绘图系统,并且由于每个场景有 1024 个单独的方块,我将附加到每个方块的颜色存储在 .txt 文件中,例如

square1 = BLACK
square2 = GREEN

等等。

当我使用此代码读取文件时

    read = open("testgraphics.txt", "r")
    xcoords = 0
    ycoords = 0
    for x in read:
        if xcoords > 1024:
            xcoords += 32
        else:
            ycoords += 32
        print(x)
        squarecolorformatting = x[-6:]
        squarecolor = squarecolorformatting[:-1]
        print(squarecolor) #This returns a string of just the color I want, e.g. BLACK
        pygame.draw.rect(screen,squarecolor, [xcoords,ycoords,32,32])
    #print(f.read())
    Scene1Read = True
    read.close()

我收到TypeError: invalid color argumentpygame.draw 行的错误。我知道我已经从我的文件中读取了一个字符串,但是我如何让 python 知道我希望我的字符串“BLACK”应用于我在程序开始时设置的颜色,当我这样做的时候BLACK = (0, 0, 0)

标签: pythonpygame

解决方案


您可以在前面的答案中看到如何在此处调查pygame.color.THECOLORS 的颜色。

因此,如果您有一个在 pygames 预定义颜色中命名颜色的字符串,您可以像这样自己获取颜色:

BLACK = pygame.Color("black")
GREEN = pygame.Color("green")

请注意,颜色的名称是小写的。


推荐阅读