Pygame我可以移动一次图像,但不知道如何移动它两次

时间:2014-01-10 23:23:34

标签: python pygame

我有一个盒子,我想以增量方式移动,我知道如何通过增量移动它只有一次。我不知道我多次这样做。有人有任何想法吗? 方框:

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()

1 个答案:

答案 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