繁体   English   中英

Pygame我只能移动一次图像,但不知道如何两次移动图像

[英]Pygame I can move an image once but don't know how to move it twice

我有一个要增量移动的框,我知道如何增量移动,但只能移动一次。 我不怎么会多次这样做。 任何人有任何想法吗? 包装盒:

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

当我只希望在按下键“ ARROW DOWN”时激活它时,可以接受任何键输入

        if event.type == pygame.KEYDOWN and pygame.K_DOWN:
            window.blit(arrowImg, (5,400))
            pygame.display.update()

您的代码几乎没有问题。

您正在事件循环中绘制,渲染文本和变白。 您应该将它们移出循环体。

看来您想要一个可以用右箭头键更改其位置的光标。

为此,请使用一个变量,该变量将告诉您光标所在的位置。

然后,您的draw语句将如下所示:

pygame.draw.rect(window, (darkYellow),(30+cursorPos*230, 300, 130, 40),0)

编辑:

至于为什么event.type == pygame.KEYDOWN and pygame.K_DOWN对于所有KEY_DOWN事件都是true,是因为它可以转换为(event.type==pygame.KEYDOWN) and pygame.K_DOWN

由于pygame.K_DOWN是非零值,因此当作为布尔值评估时为true。 要解决此问题,您需要执行以下操作:

event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM