所以我基本上是在尝试为一个项目制作一个简单的基础游戏。它是 pygame 中的阵列支持网格,以黑色背景和 10x10 绿色网格方 block 阵列开始。我想要做的是在单击正方形时交换颜色,如果正方形是绿色,它会变成白色,如果正方形是白色,它会变成绿色。我成功地更改了一次正方形的颜色,但我似乎无法将其换回。我究竟做错了什么?这是我的代码
import pygame
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
WIDTH = 20
HEIGHT = 20
MARGIN = 5
grid = []
for row in range(10):
grid.append([])
for column in range(10):
grid[row].append(0)
pygame.init()
WINDOW_SIZE = [255, 255]
screen = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption("ColorSwitch")
done = False
clock = pygame.time.Clock()
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:
pos = pygame.mouse.get_pos()
column = pos[0] // (WIDTH + MARGIN)
row = pos[1] // (HEIGHT + MARGIN)
if grid[row][column]==0:
grid[row][column] = 1
if grid[row][column]==1:
grid[row][column]==0
screen.fill(BLACK)
for row in range(10):
for column in range(10):
if grid[row][column] == 1:
color = WHITE
elif grid[row][column]==0:
color = GREEN
pygame.draw.rect(screen,
color,
[(MARGIN + WIDTH) * column + MARGIN,
(MARGIN + HEIGHT) * row + MARGIN,
WIDTH,
HEIGHT])
clock.tick(60)
pygame.display.flip()
pygame.quit()
我真的看不出哪里错了。
最佳答案
您不小心使用了 (==
) 比较相等运算符而不是 (=
) 赋值运算符:
网格[行][列]==0
grid[row][column]=0
https://stackoverflow.com/questions/63771467/