import pygame # Importujemy moduł
pygame.init() # Włączenie pygame / inicjalizacja

# Utworzenie okna o określonych wymiarach
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

screen_surface = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

#Nadanie nazwy okienku
pygame.display.set_caption("Pierwsza gra")

# Utworzenie zegara, który nadzorje stałe fps'y
clock = pygame.time.Clock()

#Zmienna określająca, czy należy zamknąć grę
game_status = True


def load_image(img_path: str, position):
    image = pygame.image.load(img_path) # Wczytujemy obrazek z argumentu funkcji
    surface = image.convert() # Konwertujemy obrazek na powierzchnie (surface)

    transparent_color = (0, 0, 0)
    surface.set_colorkey(transparent_color) # Ustawiamy kolor 0,0,0 jako przezroczsty

    # Pozycja wyświalania obiektu
    rect = surface.get_rect(center = position) 

    return [image, surface, rect]

player_pos = [SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2] #Środek ekranu
player = load_image('player.png', player_pos)

def print_image(img_list) -> None:
    # [image, surface, rect]
    image, surface, rect = img_list #Przypisuje 3 zmienne
    screen_surface.blit(surface, rect)
    pass


#Kod wykonywany gdy aplikacja działa
while game_status:
    # Odczytanie zdarzeń zarejestrowanych przez komputer
    events = pygame.event.get()

    for event in events:
        # print(event)
        if event.type == pygame.QUIT:  #Jeśli typ eventu to QUIT
            game_status = False # Ustawiam gameStatus na False.
            pass
        pass

    screen_surface.fill((25, 125, 21))
    print_image(player)
    pygame.display.update() # Odświeżanie wyświetlanego okna
    clock.tick(60)
    pass

pygame.quit() # Zamknięcie aplikacji
quit() # Zamknięcie skryptu

