2016-04-08 17 views
-1

Mit Python (und Pygame) habe ich ein kurzes Spiel mit nur einem Bildschirm erstellt und jeden Teil in einem anderen Fenster programmiert. Wenn ich auf dem Startbildschirm die Wiedergabetaste auf den Bildschirm blitze, wird sie nicht angezeigt. Ich bin neu in Python und Pygame. Dies ist mein Code:Warum erscheint das Bild nicht auf dem Bildschirm, wenn ich es blitze?

import pygame, sys 
from pygame.locals import * 

pygame.init() 

screen = pygame.display.set_mode((1352,638)) 
pygame.display.set_caption("Termination: Part 1") 
bg = True 
playButton = pygame.image.load("Play Button.png") 
mouse = pygame.mouse.get_pos() 

def playButtonFunction(): 
    if background == pygame.image.load("Home Screen.png"): 
     background.blit(playButton(533.5,278)) 

while True: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 

     if event.type == KEYDOWN and event.key == K_SPACE: 
      bg = False 

    screen.blit(background,(0,0)) 
    if bg: 
     background = pygame.image.load("Intro Screen.png") 
    else: 
     background = pygame.image.load("Home Screen.png") 
    playButtonFunction() 

    pygame.display.update() 
+0

'if background == pygame.image.load (" Home Screen.png ")'. Ich bin mir ziemlich sicher, dass man Bilder auf diese Weise nicht vergleichen kann. –

Antwort

2

Als Frédéric Hamidi sagte bereits in einem Kommentar, die Linie

if background == pygame.image.load("Home Screen.png") 

wird nicht funktionieren, wie Sie wahrscheinlich erwarten.

Sie sollten wahrscheinlich eine Flagge an diese Methode übergeben oder diese Funktion überhaupt nicht aufrufen, wenn Sie das Bild nicht anzeigen möchten.


Auch die Linie

background.blit(playButton(533.5,278)) 

eine Ausnahme auslösen wird, sollte es aussehen

background.blit(playButton, (533, 278)) 

Also, um Ihren Code zu

ändern
... 

if bg: 
    background = pygame.image.load("Intro Screen.png") 
else: 
    background = pygame.image.load("Home Screen.png") 

screen.blit(background,(0,0))  
if !bg: 
    background.blit(playButton, (533, 278)) 

... 

Ein weiteres Problem, dass Sie die Bilder von jeder neuen Iteration Ihrer Spielschleife laden (mit pygame.image.load). Es reicht, jedes Bild einmal zu laden.

+0

Danke, aber ich verstehe nicht ganz, also kannst du bitte den ganzen Code eingeben? Danke noch einmal. – Jetter126

Verwandte Themen