为什么按下按钮后屏幕颜色不变?

1 投票
1 回答
42 浏览
提问于 2025-04-14 17:06

我用了一行代码 import pygame 来引入一个叫做pygame的库。

pygame.init()
screen = pygame.display.set_mode((700, 700))
pygame.display.set_caption('Checkers')


while True:
  screen.fill((114,157,224))
  pygame.display.update()
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
    pygame.quit()
  elif event.type == pygame.KEYDOWN:
    if event.key == pygame.K_a:
      screen.fill((70,44,133))
      pygame.display.update()

我试着把 pygame.KEYDOWN 改成 pygame.key.get_pressed(),但是没有任何变化。

1 个回答

0

你应该在每一帧都更新显示内容,但当按钮被按下时,你需要改变用于填充显示屏的颜色:

clock = pygame.time.Clock()
fillColor = pygame.Color(114,157,224)

run = True
while run:
    clock.tick(100)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                fillColor = pygame.Color(70,44,133)
  
    screen.fill(fillColor)

    # draw scene
    # [...]
  
    pygame.display.update()

pygame.quit()

一个典型的PyGame应用程序循环需要:

撰写回答