1
私はすでにグリッドをプログラムしましたが、グリッド内の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()
は今、私は私がそれをクリックしたときに1つの矩形を変更したいのですが、後に、彼らは自動的に変更する必要があります(同じ色に触れる3つの長方形がある場合例えば、それらはすべて白にならなければなりません)。私は少し更新しましたが、まだいくつかの問題があります。たとえば、色が変わるまで矩形をクリックしなければならず、色を変えるのに多くの時間がかかります。
私はこのコードを試しましたが、それは動作しますが、四角形をクリックすると1秒間だけ色が変わります。そして、それは常に動作しません。 – AV13
更新されたコードをあなたの投稿に追加してください。 – skrx
私はちょうどそれをudpated – AV13