import pygame
import random

pygame.init()

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

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)

    rect = surface.get_rect(center=position)

    return [image, surface, rect]

def print_image(img_list):
    image, surface, rect = img_list
    screen_surface.blit(surface, rect)

def set_position_image(img_list, position):
    image, surface, rect = img_list
    rect = surface.get_rect(center=position)
    return [image, surface, rect]

def calculte_player_movement(keys):
    speed = 10
    delta_x = 0
    delta_y = 0

    # wasd
    if keys[pygame.K_w]:
        delta_y -= speed
    if keys[pygame.K_s]:
        delta_y += speed
    if keys[pygame.K_a]:
        delta_x -= speed
    if keys[pygame.K_d]:
        delta_x += speed
    
    return [delta_x, delta_y]

###################################################################

pygame.display.set_caption("Pierwsza Gra")

screen_surface = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

player_pos = [SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2]
player = load_image("player_new.png", player_pos)

clock = pygame.time.Clock()

game_status = True

while game_status:
    events = pygame.event.get()
    for event in events:
        print(event)
        if event.type == pygame.QUIT:
            game_status = False
    
    # new_pos_x = random.randint(0, SCREEN_WIDTH)
    # new_pos_y = random.randint(0, SCREEN_HEIGHT)
    # print(new_pos_x)
    # player = set_position_image(player, [new_pos_x, new_pos_y])

    pressed_key = pygame.key.get_pressed()

    delta_x, delta_y = calculte_player_movement(pressed_key)
    
    player_pos[0] += delta_x
    player_pos[1] += delta_y

    player = set_position_image(player, player_pos)

    print_image(player)

    pygame.display.update()
    clock.tick(60)

pygame.quit()
quit()

