"""def oblicz_wysokosc(proporcje_szerokosc, proporcje_wysokosc, piksele_szerokosc):
    return int(piksele_szerokosc / proporcje_szerokosc * proporcje_wysokosc)

print(oblicz_wysokosc(16, 9, 1920))"""

import pygame # import biblioteki
pygame.init() # inicjalizacja biblioteki (rozpoczęcie działania modułu)

# Tworzymy zmienne z parametrami wymiarów okna 
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 300

screen_surface = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Nazwa naszego okna
pygame.display.set_caption("mama coco nike pro")


# Utworzenie zegara, który nadzoruje stałe wartości fps
clock = pygame.time.Clock()

# Grafika

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świetlenia naszego obiektu jest zapisana w rect
    rect = surface.get_rect(center = position)

    return [image, surface, rect]

player_pos = [SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2]
player = load_image('player.png', player_pos)

def print_image(img_list) -> None :
    # [image, surface, rect]
    image, surface, rect = img_list
    screen_surface.blit(surface, rect)
    pass
print_image(player)

def set_postion_image(img_list, position):
    image, surface, rect = img_list
    rect = surface.get_rect(center=position)
    return [image, surface, rect]

def calculate_player_movoment(keys):
    speed = 10
    delta_x=0
    delta_y=0

    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]

def limit_position(position):
    x, y = position
    x = max(0, min(x, SCREEN_WIDTH))
    y = max(0, min(y, SCREEN_HEIGHT))
    return [x,y]


# Zmienna okeślająca czy należy zamknąć okno
game_status = True
backround_color = [0,25,211]

# Kod wykonywany póki aplikacja jest uruchomiona
while game_status:

    # odczytanie zdarzń zarejestrowanych przez komputer
    events = pygame.event.get()

    for event in events:
        # gdy nacisnięto X - zamyka się aplikacja 

        #print(event)

        if event.type == pygame.QUIT:
            game_status = False
        pass



    pressed_keys = pygame.key.get_pressed()
    delta_x, delta_y = calculate_player_movoment(pressed_keys)

    if keys [pygame.K_LSHIFT]
    



    player_pos[0] += delta_x
    player_pos[1] += delta_y
    player_pos = limit_position(player_pos)

    player = set_postion_image(player, player_pos)
    screen_surface.fill(backround_color)
    #rysowanie tła

    



    print_image(player)



    pygame.display.update() # odświeżenie wyświetlanego okna
    clock.tick(60)
    pass

pygame.quit() # Zamknęcie aplikacji 
quit() # Zamknięcie skryptu




