2016-10-07 2 views
1

Ich habe den folgenden Code in Python 3 (und pygame), aber die weiße Oberfläche zeigt nicht an und ich verstehe nicht warum. Hat es etwas damit zu tun, wo es platziert wurde? Ich habe versucht, das Einzügen aufzuheben, aber das hat auch nicht funktioniert? Der Code ist wie folgt:pygame screen fehlgeschlagen zu

import pygame 
from pygame.locals import* 
pygame.init() 

screen=pygame.display.set_mode((800,600)) 


# Variable to keep our main loop running 
running = True 

# Our main loop! 
while running: 
    # for loop through the event queue 
    for event in pygame.event.get(): 
     # Check for KEYDOWN event; KEYDOWN is a constant defined in pygame.locals, which we imported earlier 
     if event.type == KEYDOWN: 
      # If the Esc key has been pressed set running to false to exit the main loop 
      if event.key == K_ESCAPE: 
       running = False 
      # Check for QUIT event; if QUIT, set running to false 
      elif event.type == QUIT: 
       running = False 

      # Create the surface and pass in a tuple with its length and width 
      surf = pygame.Surface((50, 50)) 
      # Give the surface a color to differentiate it from the background 
      surf.fill((255, 255, 255)) 
      rect = surf.get_rect() 

      screen.blit(surf, (400, 300)) 
      pygame.display.flip() 
+0

Bekommen Sie einen Fehler entdeckt? –

+0

_ "Ich habe versucht, das Einzügen aufzuheben, aber das hat auch nicht funktioniert?" - Ja, tu das nicht. Das zufällige Einrücken und Entfernen Ihres Codes wird Ihnen nicht weiterhelfen. –

+0

Blatt - Ihr Kommentar ist auch nicht sehr hilfreich. Ich meinte, den Code, der sich auf die Oberflächenzeichnung bezieht, zu entfernen. Tristan - nein, kein Fehler. Nur ein leerer schwarzer Bildschirm –

Antwort

0

So scheint es, dass Ihre Einrückung falsch ist.

Sie müssen die Oberfläche definieren und den Bildschirm usw. außerhalb der Ereignisschleife aktualisieren.

Zumindest müssen Sie die screen.blit(surf, (400, 300)) und pygame.display.flip() außerhalb der Ereignisschleife bewegen.

Dies wird es fest:

# Our main loop! 
while running: 
    # for loop through the event queue 
    for event in pygame.event.get(): 
     # Check for KEYDOWN event; KEYDOWN is a constant defined in pygame.locals, which we imported earlier 
     if event.type == KEYDOWN: 
      # If the Esc key has been pressed set running to false to exit the main loop 
      if event.key == K_ESCAPE: 
       running = False 
      # Check for QUIT event; if QUIT, set running to false 
      elif event.type == QUIT: 
       running = False 

    # Create the surface and pass in a tuple with its length and width 
    surf = pygame.Surface((50, 50)) 
    # Give the surface a color to differentiate it from the background 
    surf.fill((255, 255, 255)) 
    rect = surf.get_rect() 

    screen.blit(surf, (400, 300)) 
    pygame.display.flip()