2016-05-16 14 views
0

Bitte helfen Sie mir, ich habe vor kurzem begonnen, Programme in Pygame zu schreiben, und ich kann dieses Hindernis überwinden, ich kann keine Hilfe online finden. Um genauer zu sein, was ich brauche, ist etwas, dass, wenn ich vielleicht die Tab-Taste nur einmal drücken, wenn ich KEYDOWN legte, würde ich immer die Taste drücken, würde ich aus dem Start-Hintergrund bekommen und dann würde eine Nachricht erscheinen. Vielen Dank für Ihre Zeit.Wie kann ich den Code einen neuen Hintergrund anzeigen lassen, wenn ich nur einmal eine Taste drücke?

import pygame 
    import random 
    perguntaa = random.randint(1,2) 
    BLACK = (0, 0, 0) 
    WHITE = (255, 255, 255) 
    GREEN = (0, 255, 0) 
    RED = (255, 0, 0) 
    BLUE = (0, 0, 255) 
    ORANGE = (255, 154, 23) 
    pygame.init() 
    size = (700, 500) 
    screen = pygame.display.set_mode(size) 
    pygame.display.set_caption("Quem quer ser Milionário") 
    clock = pygame.time.Clock() 
    done = False 
    while not done: 
     for event in pygame.event.get(): 
     screen.fill(ORANGE) 
     pygame.draw.rect(screen, BLACK, [225, 200, 250, 100]) 
     font = pygame.font.SysFont('cambria', 100, False, False) 
     text = font.render("Play", True, WHITE) 
     screen.blit(text, [225, 200]) 
     if event.type == pygame.QUIT: 
      done = True 
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_RETURN: 
      screen.fill(ORANGE) 
      pygame.draw.rect(screen, BLACK, [0, 50, 700, 100]) 
     pygame.display.flip() 
     clock.tick(30) 
pygame.quit() 

Antwort

0

Ich glaube, das ist das, was Sie suchen

bgs = [Orange, Black, Green] 
current_bg = 0 
if event.key == pygame.K_Q: 
    current_bg += 1 
    if current_bg > len(bgs)-1: 
     current_bg = 0 
screen.fill(bgs[current_bg] #alternately screen.blit(bgs[current_bg]) if bgs indexes are instead sprites 
screen.update()#flip and update are interchangeable however update is more commonly used 
Verwandte Themen