0

我正在学习创建一个显示矩形的简单 Pygame 窗口。我在 Youtube 上观看了两个不同的视频。其中一位 Youtuber 使用 Pygame.draw.rect() 创建一个矩形,而其他 Youtuber 同时使用 pygame.Rect() 和 Pygame.draw.rect()。最后两者都给出了相同的结果。那么这两个代码有什么区别呢??

4

2 回答 2

3

pygame.Rect是一个类,其实例表示矩形区域。

pygame.draw.rect是一个绘制矩形的函数。它的参数之一是pygame.Rect表示要绘制的矩形的实例。

它们是完全不同的东西。

于 2021-03-21T04:28:56.860 回答
0

pygame.Rect创建一个Rect要传递给pygame.draw.rect. 考虑这个简短的片段:

对于正在阅读本文的其他人,首先通过在 IDE 的终端或默认操作系统的终端中pygame运行来安装。pip install pygame

import pygame
SCREEN = pygame.display.set_mode((300, 300))

while True:
    pygame.draw.rect(SCREEN, 'white', (30, 30, 100, 100))
    pygame.display.update()

我们传入的元组pygame.draw.rect包括(x, y, width, height)

  • x是我们的矩形将位于垂直轴上的位置
  • y是我们的矩形将位于水平轴上的位置
  • width是我们矩形的宽度
  • height是我们矩形的高度

这就是您自己使用pygame.draw.rect的方式。在幕后,pygame将这个元组转换为一个pygame.Rect对象。因此,您在使用pygame.Rect. 例如:

pygame_rect_object = pygame.Rect(30, 30, 100, 100)
pygame.draw.rect(SCREEN, 'white', pygame_rect_object)

如您所见,创建pygame.Rect对象与传递元组相同。一些优点是可读性,您可以将其传递给多个pygame.draw.rect函数而无需重复元组。

希望这有帮助!

于 2021-09-15T12:53:59.243 回答