2

キーを押している間だけ画像を表示したい。キーを押さないと (KEYUP)、画像が消えるはずです。

私のコードでは、キーを押したままにすると画像が表示されますが、すぐには消えません。キーを押したままにしている限り、画像が表示されない理由は誰にもわかります=?

button_pressed = False
for event in pygame.event.get():
    if event.type == KEYDOWN:               
        if event.key == K_UP:
            button_pressed = True
            print"True"

    if event.type == KEYUP:
        if event.key == K_UP:
            button_pressed = False

if button_pressed:
    DISPLAYSURF.blit(arrow_left, (20, SCREEN_HEIGHT/2 - 28))

前もって感謝します!!

4

1 に答える 1

3

画像を画面にブリットすると、その上に何かを描画するまでそこにとどまります。それ自体は消えません。

簡単な解決策は、メインループの繰り返しごとに画面をクリアすることです。たとえば、次のようになります。

while running:
    DISPLAYSURF.fill((0, 0, 0)) # fill screen black

    for event in pygame.event.get():
        # handle events
        pass

    # I'm using 'key.get_pressed' here because using the KEYDOWN/KEYUP event
    # and a variable to track if a key is pressed totally sucks and people 
    # should stop doing this :-)
    keys = pygame.key.get_pressed() 
    if keys[pygame.K_UP]:
        # only draw image if K_UP is pressed.
        DISPLAYSURF.blit(arrow_left, (20, SCREEN_HEIGHT/2 - 28))

    pygame.display.flip()
于 2013-09-13T14:04:43.650 に答える