python - 在pygame中的数组支持网格中交换颜色的问题

所以我基本上是在尝试为一个项目制作一个简单的基础游戏。它是 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/

相关文章:

python - 在 Web 应用中使用 SAML 实现 Azure AD 身份验证

python - 将多个 swagger 文档(来自不同的应用程序)合并到一个 swagger 仪表

html - 根据自身内容调整banner高度

html - 语法高亮器的可访问 HTML 结构

python - Python 中 + (pos) 一元运算符的用途是什么?

python - Plotly 多类别 X 轴排序

docker - 如何删除 docker 代理设置?

c# - 如何使 flutter 应用程序的 http 获取请求到本地主机?

python - 在条件下填充 df 的行

python - "An error occurred initiating application