如何在鼠标单击Python上更改矩形颜色(pygame)

时间:2019-12-30 22:40:36

标签: python pygame

我使用pygame创建了一个宽度和高度为800像素的窗口,然后绘制了尺寸为32的矩形,以使该窗口成为25x25的网格。我要做的是更改单击以更改的矩形的颜色。

我的代码:

def createGrid():
    SCREEN_WIDTH = 800
    SCREEN_HEIGHT = 800
    BLOCK_SIZE = 32
    WHITE = (255,255,255)

    pygame.init()
    frame = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
    pygame.display.set_caption("PathFinder")
    frame.fill(WHITE)
    for y in range(SCREEN_HEIGHT):
            for x in range(SCREEN_WIDTH):
                rect = pygame.Rect(x*BLOCK_SIZE, y*BLOCK_SIZE, BLOCK_SIZE - 1, BLOCK_SIZE - 1)
                pygame.draw.rect(frame, (0,250,0), rect)


    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit() 
        pygame.display.update()  

1 个答案:

答案 0 :(得分:0)

这取决于您的代码打算做什么?此示例显示了如何在主显示表面上绘画,但没有跟踪颜色在哪里。

import pygame

white = (255, 255, 255)
red = (255, 0, 0)

size = 32

pygame.init()
s = pygame.display.set_mode((800, 800))
s.fill(white)

# press escape to exit example
while True:
    e = pygame.event.get()
    if pygame.key.get_pressed()[pygame.K_ESCAPE]: break

    x = int(pygame.mouse.get_pos()[0] / size) * size
    y = int(pygame.mouse.get_pos()[1] / size) * size

    if pygame.mouse.get_pressed()[0]:
        pygame.draw.rect(s, red, (x, y, size, size), 0)

    pygame.display.update()
    pygame.time.Clock().tick(60)
pygame.quit()