import pygame
pygame.init()

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

screen_surface = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

#nadanie nazwy okna
pygame.display.set_caption('Moja pierwsza gra')

# Utworzenie zegara, który nadzoruje stałe wartości fps
clock = pygame.time.Clock()

# Zmienna określająca, czy należy zamknąć okno
game_status = True

def load_image(img_path: str, position):
    image = pygame.image.load(img_path)
    surface = image.convert()
    transparent_color = (0, 0, 0)
    surface.set_colorkey(transparent_color)
    # Pozycja wyświetlania obiektu zapisana jest w rect
    rect = surface.get_rect(center=position)
    return [image, surface, rect]   

def print_image(img_list) -> None:
    image, surface, rect = img_list
    screen_surface.blit(surface, rect)
    pass
player_pos = [SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2]
player = load_image('player.png', player_pos)
background_color=[9,42,121]
game_status = True

#NOWY KOD------------------------------------------
def set_position_image(img_list, position):
    image, surface, rect = img_list
    rect = surface.get_rect(center=position)
    return [image, surface, rect]

def calculate_player_movement(keys):
    #poruszanie postacią
    speed = 10
    delta_x = 0
    delta_y = 0

    #warunek co ma zrobic
    if keys[pygame.K_w]:
        delta_y -= speed
    if keys[pygame.K_s]:
        delta_y += speed
    if keys[pygame.K_d]:
        delta_x += speed
    if keys[pygame.K_a]:
        delta_x -= speed
    
    return[delta_x, delta_y]

#KONIEC NOWY KOD ------------------------------------

# Kod wykonywany póki aplikacja jest uruchomiona (pętla)
while game_status:
    #sprawdzamy czy są zdarzenia
    events = pygame.event.get()

    for event in events: #jakie są zdarzenia (myszka/klawiatura)
        print(event)
   
        #kod na wyłączenie okna
        if event.type == pygame.QUIT:
            game_status = False
        pass
    #nowy kod
    pressed_keys = pygame.key.get_pressed()
    delta_x, delta_y = calculate_player_movement(pressed_keys)
    player_pos[0] += delta_x
    player_pos[1] += delta_y
    player = set_position_image(player, player_pos)

    #koniec nowy kod
    screen_surface.fill(background_color)
    print_image(player)
    pygame.display.update() # Odświeżenie wyświetlanego okna
    clock.tick(60)
    pass

pygame.quit() # Zamknięcie aplikacji
quit() # Zamknięcie skryptu

