1
我已经编写了一个网格,但现在我想更改网格中单个矩形的颜色。如何更改网格中单个矩形的颜色?
x = 5
y = 5
height = 30
width = 50
size = 20
color = (255,255,255)
new_color = (255,255,0)
screen.fill((0,0,0))
def draw_grid():
for y in range(height):
for x in range(width):
rect = pygame.Rect(x * (size + 1),y * (size + 1),size,size)
pygame.draw.rect(screen,color,rect)
x += 20
rects.append((rect,color))
y += 20
rects = []
colored_rects = []
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
draw_grid()
if pygame.mouse.get_pressed()[0]:
mouse_pos = pygame.mouse.get_pos()
for i,(rect,color) in enumerate(rects):
if rect.collidepoint(mouse_pos):
rects[i] = (rect,new_color)
colored_rects.append((rect,new_color))
for rect,color in rects:
pygame.draw.rect(screen,color,rect)
for rect,new_color in colored_rects:
pygame.draw.rect(screen,new_color,rect)
pygame.display.flip()
clock.tick()
现在我只希望更改一个矩形,当我点击它,但后来(当有三个矩形相同的颜色接触,他们都必须成为例如白色),他们必须自动改变。我已经更新了一些,但仍然存在一些问题。例如:你必须点击矩形,直到它改变颜色,并且需要花费很多时间改变颜色。
我试过这段代码,它的工作原理,但如果我点击一个矩形,它只会改变颜色一秒或更少。它并不总是有效。 – AV13
添加您的更新代码到您的文章,我会看看它。 – skrx
我刚刚解决了这个问题 – AV13