我有一个盒子,我想以增量方式移动,我知道如何通过增量移动它只有一次。我不知道我多次这样做。有人有任何想法吗? 方框:
highlight = pygame.draw.rect(window, (darkYellow),(30, 300, 130, 40),0)
移动方框(这是移动一次)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit()
if event.type == pygame.KEYDOWN and pygame.K_RIGHT:
highlight = pygame.draw.rect(window, (darkYellow),(260, 300, 130, 40),0)
difficultyText = myFont.render("Difficulty", 1, red)
window.blit(difficultyText, (260, 300))
pygame.display.update()
当我只想在键#14; ARROW DOWN"时激活任何键输入。推了
if event.type == pygame.KEYDOWN and pygame.K_DOWN:
window.blit(arrowImg, (5,400))
pygame.display.update()
答案 0 :(得分:0)
您的代码存在一些问题。
您正在事件循环中绘制,渲染文本和bliting。你应该将它们移出循环体。
似乎你想要一个用右箭头键改变其位置的光标。
要做到这一点,有一个变量可以告诉你光标在哪里。
然后你的绘制声明将如下所示:
pygame.draw.rect(window, (darkYellow),(30+cursorPos*230, 300, 130, 40),0)
编辑:
至于为什么event.type == pygame.KEYDOWN and pygame.K_DOWN
对于所有KEY_DOWN事件都为真,因为它可以转换为(event.type==pygame.KEYDOWN) and pygame.K_DOWN
。
由于pygame.K_DOWN是非零值,因此在计算为布尔值时为true。 要解决此问题,您需要执行以下操作:
event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN