我需要帮助在pygame中blit尽可能多的方块,就像一个单词的长度一样

2024-06-02 06:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个刽子手游戏,我需要尽可能多的空格来填充一个单词的长度。我正在提供我试图使用的类。非常感谢您的帮助,谢谢

class Blanks:
    def __init__(self, length, win, color = (255, 255, 255), top = 500):
        self.length = length
        self.win = win
        self.color = color
        self.top = top

    def draw(self):
        num = [(50, 500), (80, 500), (110, 500), (140, 500), (170, 500), (200, 500)]
        for i in range(self.length + 1):
            num2 = num[:i]
            print(num2)
            pygame.draw.rect(self.win, self.color, (num2[:][0], num2[:][1], 20, 20))

length参数获取单词的长度


1条回答
网友
1楼 · 发布于 2024-06-02 06:24:38

语句num2 = num[i]从列表中检索1个元素。元素的坐标是(num2[0]num2[1])。当然,您必须确保列表num没有被越界访问(range(min(len(num), self.length))):

num = [(50, 500), (80, 500), (110, 500), (140, 500), (170, 500), (200, 500)]
for i in range(min(len(num), self.length)):
    num2 = num[i]
    pygame.draw.rect(self.win, self.color, (num2[0], num2[1], 20, 20))

无论如何,我建议根据元素的索引(i)计算位置:

x = 50 + i *30
y = 500

方法draw

class Blanks:
    # [...]

    def draw(self):
        for i in range(self.length):
            x = 50 + i *30
            y = 500
            pygame.draw.rect(self.win, self.color, (x, y, 20, 20))

相关问题 更多 >