import pygame
import random 
import time 
from Jablko import Jablko 
from waz import Waz
from Kierunek import Kierunek

#szerokosc i wysokosc ekranu
SZEROKOSC_EKRANU = 800
WYSOKOSC_EKRANU = 608
punkty = 0


tlo = pygame.Surface((SZEROKOSC_EKRANU, WYSOKOSC_EKRANU))

obrazki = [
    pygame.image.load("images/background.png"),
    pygame.image.load("images/background2.png"),
    pygame.image.load("images/background3.png"),
    pygame.image.load("images/background4.png")

]
for i in range(25):
    for j in range(19):
        obraz = random.choice(obrazki)
        maska = (random.randrange(9, 20), random.randrange(0, 20), random.randrange(0, 20))
        obraz = obraz.copy()
        obraz.fill(maska, special_flags=pygame.BLEND_ADD)
        tlo.blit(obraz, (i*32, j*32 ))
    


pygame.init()

ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
zegar = pygame.time.Clock()

moje_czcionki = pygame.font.SysFont("Comic Sans MS", 24)

waz = Waz() 
predkosc = 200
PORUSZ_WEZEM = pygame.USEREVENT + 1
pygame.time.set_timer(PORUSZ_WEZEM, predkosc)


jablko = Jablko()
jablka = pygame.sprite.Group()
jablka.add(jablko)


gra_działa = True 
while gra_działa: 
    for zdarzenie in pygame.event.get():
        if zdarzenie.type == pygame.KEYDOWN:
            if zdarzenie.key == pygame.K_ESCAPE:
                gra_działa = False
            if zdarzenie.key == pygame.K_w:
                waz.zmien_kierunek(Kierunek.GORA)
            if zdarzenie.key == pygame.K_s:
                waz.zmien_kierunek(Kierunek.DOL)
            if zdarzenie.key == pygame.K_d:
                waz.zmien_kierunek(Kierunek.PRAWO)
            if zdarzenie.key == pygame.K_a:
                waz.zmien_kierunek(Kierunek.LEWO)
            if zdarzenie.key == pygame.K_o:
                predkosc += 10 
                pygame.time.set_timer(PORUSZ_WEZEM, predkosc)
            if zdarzenie.key == pygame.K_p:
                predkosc -= 10
                pygame.time.set_timer(PORUSZ_WEZEM, predkosc)
        elif zdarzenie.type == PORUSZ_WEZEM:
           waz.aktualizuj()
        elif zdarzenie.type == pygame.QUIT:
            gra_działa = False

    kolizja_z_jablkiem = pygame.sprite.spritecollideany(waz, jablka)
    if kolizja_z_jablkiem != None:
        kolizja_z_jablkiem.kill()
        waz.jedz_jablko()
        punkty += 1
        jablko = Jablko()
        jablka.add(jablko)

    ekran.blit(tlo, (0,0))
    ekran.blit(waz.obraz, waz.rect)
    waz.rysuj_segmenty(ekran)
    for jablko in jablka:
        ekran.blit(jablko.obraz, jablko.rect)
    tekst_z_wynikiem = moje_czcionki.render(f"Wynik: {punkty}", False, (0,0,0))
    ekran.blit(tekst_z_wynikiem, (16,16))
    if waz.sprawdz_kolizje():
        tekst_z_przegrana = moje_czcionki.render("Przegrana", False, (200, 0, 0))
        ekran.blit(tekst_z_przegrana, (SZEROKOSC_EKRANU/2 - 50, WYSOKOSC_EKRANU /2))
        gra_działa = False
    pygame.display.flip()
    zegar.tick(30)

time.sleep(3)
pygame.quit()

















