import pygame
from pygame import Rect


WIDTH = 800
HEIGHT = 600

pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))

# Start de klok
clock = pygame.time.Clock()


sound = pygame.mixer.Sound("bow.wav")
explosion = pygame.mixer.Sound("explosion.wav")
player = pygame.image.load("ship.png")
bullet_img = pygame.image.load("bullet.png")
enemy = pygame.image.load("enemyship.png")
enemy_slain = pygame.image.load("enemyship_slain.png")

# Positie van de speler, en verplaatsing van de speler
x = WIDTH / 2
y = HEIGHT - 110
xchange = 0
ychange = 0

# Posities van de kogels, en verplaatsing van de kogels
# De lijst is nu leeg, aangezien we het spel liefst beginnen
# zonder dat er kogels rondvliegen...
bullets = []
bullet_x_change = 0
bullet_y_change = -5

# Positie van de vijand, en verplaatsing van de vijand
enemy_alive = True
enemy_x = WIDTH - 200
enemy_y = 0
enemy_x_change = 0
enemy_y_change = 1


running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                sound.play()
                # TODO: Als de speler schiet,
                # voeg dan een kogel toe, op
                # de positie van de speler
                print(bullets)
            elif event.key == pygame.K_LEFT:
                xchange = -1.5
            elif event.key == pygame.K_RIGHT:
                xchange = 1.5
            elif event.key == pygame.K_UP:
                ychange = -1.5
            elif event.key == pygame.K_DOWN:
                ychange = 1.5
        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                xchange = 0
            elif event.key == pygame.K_RIGHT:
                xchange = 0
            if event.key == pygame.K_UP:
                ychange = 0
            elif event.key == pygame.K_DOWN:
                ychange = 0
    # Verplaats de speler
    x += xchange
    y += ychange

    # Verplaats alle kogels
    for bullet in bullets:
        bullet[0] = bullet[0] + bullet_x_change
        # TODO: De regel hierboven zorgt voor de verplaatsing in 
        # horizontale richting (x-coordinaten). Voeg zelf de code toe voor
        # de verplaatings in vertikale richting (y-coordinaten).
        
        
    if enemy_alive:
        # Verplaats de vijand
        enemy_x += enemy_x_change
        enemy_y += enemy_y_change

        # Als de vijand buiten het scherm gaat,
        # plaats hem dan terug bovenaan het scherm
        if enemy_y > HEIGHT:
            enemy_y = 0

        # Kijk of er een botsing is
        enemy_rect = Rect(enemy_x, enemy_y, 32, 32)
        # Dit doen we even niet, om het eenvoudiger te houden

    # Teken de speler en de vijand
    screen.fill("white")
    screen.blit(player, (x, y))
    screen.blit(enemy, (enemy_x, enemy_y))

    # Teken alle kogels
    for bullet in bullets:
        # gebruik blit voor iedere kogel uit de lijst
        # TODO: Corrigeer onderstaande code
        screen.blit(bullet_img, (bullet_x, bullet_y))

    pygame.display.flip()

    # Wacht zodanig dat we maximal 60 FPS halen
    clock.tick(60)
