Python 在pygame中使用类创建矩形?

Python 在pygame中使用类创建矩形?,python,pygame,Python,Pygame,问题实际上是在pygame中创建矩形。显然这只是pygame.draw.rect(),但我的问题是当我试图在类中绘制一个矩形,并使用def\uuu init\uuu() 我曾尝试使用\uuuu init\uuu语句中的属性来绘制矩形,但发现出现了错误。这似乎是最成功的方法,但仍然没有显示框 class rectangles: def __init__(self, command, display, colour, x, y, width, height): self.c

问题实际上是在pygame中创建矩形。显然这只是pygame.draw.rect(),但我的问题是当我试图在类中绘制一个矩形,并使用
def\uuu init\uuu()

我曾尝试使用
\uuuu init\uuu
语句中的属性来绘制矩形,但发现出现了错误。这似乎是最成功的方法,但仍然没有显示框

class rectangles:

    def __init__(self, command, display, colour, x, y, width, height):
        self.command = command
        self.display = display
        self.colour = colour
        self.x = int(x)
        self.y = int(y)
        self.width = int(width)
        self.height = int(height)

    def rectdraw(self):
        return (self.command, self.display, self.colour, self.x, self.y, self.width, self.height)

block1 = rectangles(pygame.draw.rect, window, black, 100, 100, 200, 200)
block2 = rectangles(pygame.draw.rect, window, black, 20, 20, 400, 600)
block3 = rectangles(pygame.draw.rect, window, black, 800, 500, 40, 40)    


(block1.rectdraw())
(block2.rectdraw())
(block3.rectdraw())
(我也为pygame创建了一个窗口,只是没有包括在这里)


虽然程序没有出现任何错误,但它只会出现一个空白屏幕,而不会显示我想要的框。这尤其令人费解,它让我认为我的类有问题。

代码中的问题是您在哪里编写的

return (self.command, self.display, self.colour, self.x, self.y, self.width, self.height)
return self.command(self.display, self.colour, self.x, self.y, self.width, self.height)
你应该写信的

return (self.command, self.display, self.colour, self.x, self.y, self.width, self.height)
return self.command(self.display, self.colour, self.x, self.y, self.width, self.height)

相反

代码中存在的问题是编写代码的地方

return (self.command, self.display, self.colour, self.x, self.y, self.width, self.height)
return self.command(self.display, self.colour, self.x, self.y, self.width, self.height)
你应该写信的

return (self.command, self.display, self.colour, self.x, self.y, self.width, self.height)
return self.command(self.display, self.colour, self.x, self.y, self.width, self.height)

相反

如果有人知道任何关于类或pygame的知识,我将非常感激。即使只是一个建议也有帮助。我在这方面工作了很长时间,试图用不同的方法我很乐意讨论我所做的事情和人们的想法老实说,我花了太多时间在这上面,我真的需要把它忘了。更重要的问题是,你为什么要这么做,
rectangles
与仅仅使用
pygame.draw.rect
?@dangee1705哦,天哪,我差那么远了。我简直不敢相信。它终于起作用了。非常感谢您的快速响应。@dangee1705我正在尝试这样做,以便将x、y、width和height变量设置为相同的属性,以便移动显示器。基本上:如果字符到达屏幕上的某个点,我希望所有的块都向一个方向移动,所以字符看起来像在移动,但实际上是背景。我不需要手动设置所有的块移动,我想这样做是为了节省时间,以防将来添加更多的块(我会这样做)。这可能没有意义,但总的来说,它只会使我的程序更有效。再次感谢你的帮助,是的,这对我完全有效。如果你想写它作为一个答案,你可以,也许是为了将来,以防别人陷入困境或需要帮助。我怀疑有人会再次遇到这种特殊的问题,但你永远不知道,如果有人知道关于类或pygame的任何事情,我将非常感激。即使只是一个建议也有帮助。我在这方面工作了很长时间,试图用不同的方法我很乐意讨论我所做的事情和人们的想法老实说,我花了太多时间在这上面,我真的需要把它忘了。更重要的问题是,你为什么要这么做,
rectangles
与仅仅使用
pygame.draw.rect
?@dangee1705哦,天哪,我差那么远了。我简直不敢相信。它终于起作用了。非常感谢您的快速响应。@dangee1705我正在尝试这样做,以便将x、y、width和height变量设置为相同的属性,以便移动显示器。基本上:如果字符到达屏幕上的某个点,我希望所有的块都向一个方向移动,所以字符看起来像在移动,但实际上是背景。我不需要手动设置所有的块移动,我想这样做是为了节省时间,以防将来添加更多的块(我会这样做)。这可能没有意义,但总的来说,它只会使我的程序更有效。再次感谢你的帮助,是的,这对我完全有效。如果你想写它作为一个答案,你可以,也许是为了将来,以防别人陷入困境或需要帮助。我怀疑有人会再次遇到这种特殊的问题,但你永远不知道