import pygame # Packet laden
import sys

pygame.init() # Muss immer bei der Verwendung von Pygame am Anfang gemacht werden zur internen Initialisierung

# Fenstergrösse definieren
width = 700
height = 500
screen = pygame.display.set_mode((width, height))

pygame.display.set_caption("Bewegende Sonne")

# Farben definieren mit RGB Wert
white = (255, 255, 255)
yellow = (255, 255, 0)
red = (255, 0, 0)
orange = (255, 100, 0)
black = (0, 0, 0)
green = (0, 255, 0)
darkgreen = (0, 150, 0)
blue = (0, 0, 255)

# Zeitmesser einführen
clock = pygame.time.Clock()

# Sonne Koordinaten und Geschwindigkeit
sonne_y = 50
bewegungs_geschwindigkeit = 2
sonne_max = 50 # maximale Höhe
sonne_min = 300 # minimale Höhe

# Radius Sonne
radius_sonne = 40


while True:
    for event in pygame.event.get():
        # If the player clicks the red 'x', it is considered a quit event
        if event.type == pygame.QUIT:
            pygame.quit() # Gegenteil von pygame.init()
            sys.exit() # Programm regulär beenden

    # HINTERGRUND MUSS VOR DEN GEOMETRISCHEN OBJEKTEN GEZEICHNET WERDEN
    screen.fill(yellow)

    # Zeichne Sonne
    pygame.draw.circle(screen, orange, [550, sonne_y], radius_sonne)

    # Berechne Sonnenkoordinaten neu für den nächsten Zeitschritt
    sonne_y = sonne_y + bewegungs_geschwindigkeit

    # TODO: Wenn die Sonne untergegangen ist, sollte sie wieder steigen und irgendwann sollte sie wieder untergehen


    # Zeichne Grass
    # Variante 1: erstelle Rechteck-Objekt und zeichne dieses
    # rechteck = pygame.Rect(0, 300, 700, 500)
    # pygame.draw.rect(screen, green, rechteck)
    # Variante 2: zeichne Rechteck direkt
    pygame.draw.rect(screen, green, (0, 300, 700, 500))

    # Zeichne Haus
    pygame.draw.rect(screen, blue, (150, 150, 300, 200))
    pygame.draw.polygon(screen, red, [(150, 150), (300, 50), (450, 150)])  # Dach
    pygame.draw.rect(screen, darkgreen, (250, 250, 50, 100))  # Türe
    pygame.draw.circle(screen, black, (260, 300), 5)  # Türgriff

    # pygame vollständig updaten
    pygame.display.update()

    clock.tick(60) # while-Schleife soll nicht öffters als 60 mal pro Sekunde ausgeführt werden.

