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