Warum nur schwarzer Screen beim Start von PyGame Script?

2 Antworten

ChatGPT:

Dein Code enthält einige Fehler, die den schwarzen Bildschirm verursachen. Hier ist eine korrigierte Version:

1. Das Rechteck player_1 muss in der Spielschleife neu gezeichnet werden.

2. Die Einrückung der Bewegungskontrollen ist nicht korrekt.

3. Die Methode move_ip sollte auf das Rechteck angewendet werden.

4. Der Aufruf von pygame.display.flip() und clock.tick() sollte innerhalb der Spielschleife erfolgen.

Hier ist der korrigierte Code:

import pygame

import sys

# pygame initialisieren

pygame.init()

pygame.display.set_caption("Knight Slasher")

# Bildschirm und Uhr erstellen

screen = pygame.display.set_mode((1280, 720))

clock = pygame.time.Clock()

running = True

# Farben und Spielerrechteck definieren

color = (255, 0, 0)

player_1 = pygame.Rect(600, 360, 100, 100)

# Spielschleife

while running:

  for event in pygame.event.get():

    if event.type == pygame.QUIT:

      running = False

   

  # Bildschirm mit einer Farbe füllen

  screen.fill("green")

  # Spielerrechteck zeichnen

  pygame.draw.rect(screen, color, player_1)

  # Bewegung

  keys = pygame.key.get_pressed()

  if keys[pygame.K_a]:

    player_1.move_ip(-5, 0)

  if keys[pygame.K_d]:

    player_1.move_ip(5, 0)

  if keys[pygame.K_w]:

    player_1.move_ip(0, -5)

  if keys[pygame.K_s]:

    player_1.move_ip(0, 5)

  # Display aktualisieren

  pygame.display.flip()

  # FPS auf 60 begrenzen

  clock.tick(60)

pygame.quit()

Stelle sicher, dass du den Code korrekt einrückst, besonders in der Spielschleife. Das sollte das Problem mit dem schwarzen Bildschirm beheben und dein Spiel korrekt anzeigen.

Woher ich das weiß:Recherche

Der Grund, warum dein PyGame-Skript nur einen schwarzen Bildschirm anzeigt, liegt an mehreren Problemen im Code, darunter Indentierungsfehler und der falsche Umgang mit der

"pygame.draw.rect( )"

Funktion. Ich werde den Code korrigieren und einige Verbesserungen hinzufügen, damit er wie erwartet funktioniert.

Hier ist der überarbeitete Code:

import pygame

import sys

# Initialisierung von pygame

pygame.init()

# Bildschirm und Titel

screen = pygame.display.set_mode((1280, 720))

pygame.display.set_caption("Knight Slasher")

# Farbdefinitionen

color = (255, 0, 0)

# Initialisierung des Spielers

player_1 = pygame.Rect(600, 360, 100, 100)

# Spieluhr

clock = pygame.time.Clock()

# Hauptspiel-Schleife

running = True

while running:

  for event in pygame.event.get():

    if event.type == pygame.QUIT:

      running = False

  # Bildschirm füllen

  screen.fill("green")

  # Spielerbewegung

  keys = pygame.key.get_pressed()

  if keys[pygame.K_a]:

    player_1.move_ip(-5, 0)

  if keys[pygame.K_d]:

    player_1.move_ip(5, 0)

  if keys[pygame.K_w]:

    player_1.move_ip(0, -5)

  if keys[pygame.K_s]:

    player_1.move_ip(0, 5)

  # Zeichnen des Spielers

  pygame.draw.rect(screen, color, player_1)

  # Bildschirm aktualisieren

  pygame.display.flip()

  # FPS begrenzen

  clock.tick(60)

pygame.quit()