【问题标题】:How would I detect NO KEY PRESS / No Input in Python?我如何在 Python 中检测到 NO KEY PRESS / No Input?
【发布时间】:2019-10-12 07:15:00
【问题描述】:

我正在制作一个简单的盒子移动“游戏”来学习pygame导入,但我想在没有按键后将盒子设置回灰色。

import pygame
from pygame.locals import *
pygame.init()
width = 400
height = 400
screen = pygame.display.set_mode((width,height))
done = False
clock = pygame.time.Clock()
color = (150, 150, 150)
x = 0
y = 0
while not done:
    for event in pygame.event.get():
            if event.type == pygame.QUIT:
                    done = True
            if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                    is_blue = not is_blue

    pressed = pygame.key.get_pressed()
    if pressed[pygame.K_UP] or pressed[pygame.K_w] and y > 0:
        y -= 3
        color = (0,0,255)
    if pressed[pygame.K_DOWN] or pressed[pygame.K_s] and y+60 < height: #Adding 60 because height of block = 60
        y += 3
        color = (255,255,0)
    if pressed[pygame.K_LEFT] or pressed[pygame.K_a] and x > 0:
        x -= 3
        color = (0,255,0)
    if pressed[pygame.K_RIGHT] or pressed[pygame.K_d] and x+60 < width: #Adding 60 because width of block = 60
        x += 3
        color = (255,0,0)
    screen.fill((0, 0, 0))
    pygame.draw.rect(screen, color, pygame.Rect(x, y, 60, 60))

    pygame.display.flip()
    clock.tick(60)

【问题讨论】:

  • 我想在最后显示的 if 语句之后添加它。

标签: python pygame key-bindings


【解决方案1】:

只需在while 循环内添加color=(150,150,150) 的集合(: 将其作为循环内的第一行。

【讨论】:

  • 非常感谢!我只是在学习 python 语言,我猜如果没有 {}(来自 java),很容易错过一些东西! :-)
  • 确实如此! python 中的作用域有时可能会令人困惑(尽管这不是我们的问题;)如果您能接受我的回答而不只是投票,我将非常感激! (:
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
相关资源
最近更新 更多