2016-12-05 3 views
0

Ich versuche, ein Bild in Pygame zu erhalten, nachdem eine Kollision erkannt wurde. Aber das Problem, das ich habe, ist, dass das Bild nur angezeigt wird, wenn die IF-Bedingung wahr ist. Gibt es eine Möglichkeit, dass ich das Bild erhalten kann, wenn die Bedingung nur einmal wahr ist?Wie zeigen Sie ein Bild an, wenn eine Bedingung zutrifft?

Syntax/

#Game Over 
if collision == True: 
    SCREEN.blit(start_menu, (0, 0)) 
    SCREEN.blit(final_score, (800, 5)) 

HINWEIS: Ich habe bereits eine while-Anweisung und eine for-Schleife im Rahmen dieses Programms läuft

+1

Warum nicht ein separates Flag auf True setzen, sobald das Bild angezeigt wird, und dann darauf achten und es bei der nächsten Kollision nicht anzeigen? –

+0

Ich habe das ausprobiert und es zeigt nur das Bild an, ohne dass sogar eine Kollision erkannt wird. – nipkip

+1

'if collision == True und image_shown == False: Bild anzeigen, set image_shown = True' –

Antwort

1

Hier ist eine Art und Weise:

  1. eine Variable Marke:

    GameOver = False 
    
  2. Verwenden Sie die if-Anweisung Sie Kollision

    if collision == True: 
        GameOver = True 
    
  3. Zeigen Sie Ihre blit erkennen verwenden, um mit dieser Variablen

    if GameOver == True: 
        SCREEN.blit(start_menu, (0, 0)) 
        SCREEN.blit(final_score, (800, 5)) 
    

Bitte mir sagen, ob dies geholfen!

+0

Sie müssen in der dritten if-Anweisung ein Gleichheitszeichen hinzufügen. Variablennamen sollten nur Kleinbuchstaben und nicht CamelCase verwenden. CamelCase ist für Klassennamen. Es ist oft üblich, die Gleichheit nicht mit einem booleschen Wert zu überprüfen und einfach 'if collision: game_over = True' zu ​​machen. –

+0

Ah, ich sehe, dass ich einen Fehler gemacht habe! Panzer, um mich wissen zu lassen! – Qwerty

+0

Omg, danke, Bruder! Yah es funktioniert: 3 – nipkip

Verwandte Themen