用pygame绘图后如何配置矩形?

Posted

技术标签:

【中文标题】用pygame绘图后如何配置矩形?【英文标题】:how to configure a rect after drawing with pygame? 【发布时间】:2022-01-23 20:23:44 【问题描述】:

像 Tkinter 一样,您可以在使用 ex: widget.config(...) 绘制后配置您的小部件, 在pygame中绘制矩形后如何更改矩形的颜色(例如)? 非常感谢。

【问题讨论】:

你完全误解了pygame是什么。 pygame 中没有小部件,它有更多“原始”内容(如果需要,您可以从中创建小部件,在这种情况下,您可以添加类似 config 的内容,但您会拥有自己做) 实际上,我知道 pygame 是什么,但我想问是否可以在绘制矩形后重新配置它(例如它的颜色或尺寸)。如果你理解我并且你有答案,请帮助我。谢谢 @Houssem_coder “实际上,我知道 pygame 是什么,但我想问是否可以在绘制矩形后重新配置它...” - 这个问题很清楚说明你不知道 pygame 是什么。用pygame绘制的矩形只是屏幕上一堆相同颜色的像素。没有什么可以配置的。 @Rabbid76 和 Matiiss,谢谢你们,这真的很有帮助......我想我必须加深对这些模块的理解。 【参考方案1】:

要更改表面的颜色,您只需更改变量然后将其绘制到屏幕上。例如:

import pygame
from sys import exit as sys_exit

pygame.init()
WINDOW_SIZE = (800, 600)
WINDOW = pygame.display.set_mode(WINDOW_SIZE)
CLOCK = pygame.time.Clock()
FPS = 60

player_surf = pygame.Surface((100, 100))
player_rect = player_surf.get_rect(center=(200, 200))

draw_red = True


def quit_game():
    pygame.quit()
    sys_exit()


def draw():
    WINDOW.fill("White")

    if draw_red:
        player_surf.fill("Red")  # Now the player color is red.
    else:
        player_surf.fill("Blue")  # Now the player color is blue.

    WINDOW.blit(player_surf, player_rect)
    pygame.display.update()


while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            quit_game()
    left, middle, right = pygame.mouse.get_pressed()
    if left:
        draw_red = False  # When you press left mouse button, player's color should change

    draw()
    CLOCK.tick(FPS)

【讨论】:

以上是关于用pygame绘图后如何配置矩形?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pygame 中检查变量是不是包含矩形? [复制]

如何在Pygame中给pygame.sprite.rect矩形分配一个 "rect "属性?

手机版qpython如何下载pygame

如何在pygame中检测两个矩形对象或图像之间的碰撞

如何为此特定代码在 Pygame 中模拟跳跃 [重复]

如何检测何时单击矩形对象、图像或精灵