import pygame # Packet laden
import sys
import random


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

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

pygame.display.set_caption("Ereignisse in Pygame")

# Farben definieren mit RGB Wert
white = (255, 255, 255)
yellow = (255, 255, 0)
red = (255, 0, 0)
green = (0, 255, 0)

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

# Raumschiff Koordinaten
gelb_x = 100
gelb_y = 200
rot_x = 400
rot_y = 200

# Raumschiff Eigenschaften
vel = 5 # Geschwindigkeit (engl. velocity)
vel_d = 60 # Geschwindigkeit (engl. velocity)

# Bewegendes Rechteck
rechteck_x = 200
rechteck_y = 200
rechteck_breite = 80
rechteck_hoehe = 80
rechteck_vel_x = 1
rechteck_vel_y = 1
rechteck = pygame.Rect(rechteck_x, rechteck_y, rechteck_breite, rechteck_hoehe)

# Bullets
bullets = []
bullets2 = []
bullet_vel = 4

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

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                bullet = pygame.Rect(rot_x - 2, rot_y + 40//2 - 2, 10, 5) # 55 und 40 sind Breite und Höhe des Raumschiffs (siehe Skalierung)
                bullets.append(bullet)

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                rot_x = rot_x - vel_d
            if event.key == pygame.K_RIGHT:
                rot_x = rot_x + vel_d
            if event.key == pygame.K_UP:
                rot_y = rot_y - vel_d
            if event.key == pygame.K_DOWN:
                rot_y = rot_y + vel_d


    screen.fill(yellow)

    # Bullets bewegen
    for bullet in bullets:
        bullet.x = bullet.x - bullet_vel

    # Bullets bewegen
    for bullet in bullets2:
        bullet.x = bullet.x + bullet_vel


    # Überprüfe, ob Taste gedrückt wurde
    keys_pressed = pygame.key.get_pressed()

    if keys_pressed[pygame.K_a]: # überprüfe, ob Taste 'a' gedrückt wurde
        gelb_x = gelb_x - vel
    if keys_pressed[pygame.K_d]: # überprüfe, ob Taste 'd' gedrückt wurde
        gelb_x = gelb_x + vel
    if keys_pressed[pygame.K_w]: # überprüfe, ob Taste 'w' gedrückt wurde
        gelb_y = gelb_y - vel
    if keys_pressed[pygame.K_s]: # überprüfe, ob Taste 's' gedrückt wurde
        gelb_y = gelb_y + vel

    if keys_pressed[pygame.K_e] or keys_pressed[pygame.K_q]:
        bullet = pygame.Rect(gelb_x + 55, gelb_y + 40//2 - 2, 10, 5) # 55 und 40 sind Breite und Höhe des Raumschiffs (siehe Skalierung)
        bullets2.append(bullet)

    pygame.draw.rect(screen,red,[rot_x,rot_y,50,50])
    pygame.draw.rect(screen,green,[gelb_x,gelb_y,50,50])


    for bullet in bullets:
        pygame.draw.rect(screen, red, bullet)

    for bullet in bullets2:
        pygame.draw.rect(screen, green, bullet)

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

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





