import pygame
pygame.init()

# podanie rozmiaru ekranu
SCREEN_WIDTH = 1080
SCREEN_HEIGHT =620
SCREEN_TUPLE = (SCREEN_WIDTH,SCREEN_HEIGHT)


# ustawienie rozmiaru ekranu
surface_okna = pygame.display.set_mode(SCREEN_TUPLE)
pygame.display.set_caption("py-game1")

#surface -> rejestruje TYLKO WYGLĄD obiektów
#reck(recktangle) -> rejestruje POŁORZENIE obiektów
def load_image(scieszka: str,pozycja):
    obraz = pygame.image.load(scieszka)
    surface = obraz.convert()

    przezroczysty_kolor = (0,0,0)
    surface.set_colorkey(przezroczysty_kolor)

    rect = surface.get_rect(center=pozycja)
    return [obraz, surface, rect]

def print_image(dane_gracza):
    obraz, surface, rect = dane_gracza
    surface_okna.blit(surface, rect)
import random
def calculate_player_movement(lista_klawiszy):
    zmiena_x = 0
    zmiena_y = 0
    if lista_klawiszy[pygame.K_w]:
        zmiena_y -= random.randint(0,2)*10
    if lista_klawiszy[pygame.K_s]:
        zmiena_y += random.randint(0,2)*10
    if lista_klawiszy[pygame.K_a]:
        zmiena_x -= random.randint(0,2)*10
    if lista_klawiszy[pygame.K_d]:
        zmiena_x += random.randint(0,2)*10
    if lista_klawiszy[pygame.K_f]:
        pygame.display.toggle_fullscreen()
    return [zmiena_x,zmiena_y]

pozycja_gracza = [SCREEN_WIDTH//2, SCREEN_HEIGHT//2]
gracz = load_image(pozycja=pozycja_gracza, scieszka="grafiki\player.png")

kolor_ekranu = [0,0,0]

#tworzymy zegar
zegar = pygame.time.Clock()

# zmienna, która określa, czy gra trwa
status_gry = True
def set_position(pozycja,obraz_lista):
    obraz, surface, rect = obraz_lista
    rect = surface.get_rect(center = pozycja)
    return [obraz,surface,rect]

def limit_pozycji(x,y):
    if x >= SCREEN_WIDTH:
        x = SCREEN_WIDTH
    else:
        if x <= 0:
            x = 0
    if y >= SCREEN_HEIGHT:
        y = SCREEN_HEIGHT
    else:
        if y <= 0:
            y = 0
    return [x,y]
# gra
while status_gry:
    #odczytujemy zdarzenia zarejestrowane przez pygmae
    #zwracane jako lista
    zdarzenia = pygame.event.get()
    for i in zdarzenia:
        # if(i.type == pygame.WINDOWMINIMIZED):
        #     status_gry = False
        if i.type == pygame.KEYDOWN:
            if i.key == 1073741906:
                pozycja_gracza[1]-=30
                gracz = load_image(scieszka="grafiki/player.png", pozycja=pozycja_gracza)
                if pozycja_gracza[1] <= 0:
                    pozycja_gracza[1] = SCREEN_HEIGHT
                    pozycja_gracza[0] += 30

        print(i)
    #wykrycie nacisniętego klawisza i zmiana wspólzendnych
    nacisniete_klawisze = pygame.key.get_pressed()
    zmiana_x,zmiana_y = calculate_player_movement(nacisniete_klawisze)
    pozycja_gracza = limit_pozycji(pozycja_gracza[0]+zmiana_x,pozycja_gracza[1]+zmiana_y)
    
    gracz = set_position(pozycja_gracza,gracz)
    surface_okna.fill(kolor_ekranu)
    #odświerzaie ekranu
    print_image(gracz)
    pygame.display.update()
    zegar.tick(60)
    pass



#zamukanie aplikacji
pygame.quit()
quit()