giganciprogramowania

lekcja 10 - projekt.py

Feb 19th, 2022 (edited)
479
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.79 KB | None | 0 0
  1. import pygame
  2. import random
  3. import time
  4. from Kierunek import Kierunek
  5. from Waz import Waz
  6. from Jablko import Jablko
  7.  
  8. #szerokość i wysokość ekranu
  9. SZEROKOSC_EKRANU = 800
  10. WYSOKOSC_EKRANU = 608
  11. Punkty = 0
  12.  
  13. #stworzenie tla
  14. tlo = pygame.Surface((SZEROKOSC_EKRANU, WYSOKOSC_EKRANU))
  15. for i in range(25):
  16.     for j in range(19):
  17.         obraz = pygame.image.load("images/background.png")
  18.         maska = (random.randrange(0, 20), random.randrange(0,20), random.randrange(0,20))
  19.        
  20.         obraz.fill(maska, special_flags=pygame.BLEND_ADD)
  21.         tlo.blit(obraz, (i*32, j*32))
  22.  
  23. #ustawienia
  24. pygame.init()
  25. pygame.font.init()
  26. #obiekt ekranu i zegara
  27. ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
  28. zegar = pygame.time.Clock()
  29. #obiekt czcionki
  30. moja_czcionka = pygame.font.SysFont('Comic Sans MS', 24)
  31.  
  32. #Wąż
  33. waz = Waz()
  34. PORUSZ_WEZEM = pygame.USEREVENT + 1
  35. pygame.time.set_timer(PORUSZ_WEZEM, 200)
  36.  
  37. #jabłka
  38. jablko = Jablko()
  39. jablka = pygame.sprite.Group()
  40. jablka.add(jablko)
  41.  
  42. gra_dziala = True
  43. while gra_dziala:
  44.     for zdarzenie in pygame.event.get():
  45.         if zdarzenie.type == pygame.KEYDOWN:
  46.             if zdarzenie.key == pygame.K_ESCAPE:
  47.                 gra_dziala = False
  48.             if zdarzenie.key == pygame.K_w:
  49.                 waz.zmien_kierunek(Kierunek.GORA)
  50.             if zdarzenie.key == pygame.K_s:
  51.                 waz.zmien_kierunek(Kierunek.DOL)
  52.             if zdarzenie.key == pygame.K_a:
  53.                 waz.zmien_kierunek(Kierunek.LEWO)
  54.             if zdarzenie.key == pygame.K_d:
  55.                 waz.zmien_kierunek(Kierunek.PRAWO)
  56.  
  57.         elif zdarzenie.type == PORUSZ_WEZEM:
  58.             waz.aktualizuj()
  59.         elif zdarzenie.type == pygame.QUIT:
  60.             gra_dziala = False
  61.        
  62.     #sprawdzenie czy glowa weza jest na jablku
  63.     kolizja_z_jablkiem = pygame.sprite.spritecollideany(waz, jablka)
  64.     if kolizja_z_jablkiem != None:
  65.         kolizja_z_jablkiem.kill()
  66.         waz.jedz_jablko()
  67.         jablko = Jablko()
  68.         jablka.add(jablko)
  69.         #SCORE += 1
  70.    
  71.     #rysowanie tła
  72.     ekran.blit(tlo, (0, 0))
  73.     #rysowanie segmentow
  74.     waz.rysuj_segmenty(ekran)
  75.     #rysowanie glłowy węża
  76.     ekran.blit(waz.obraz, waz.rect)
  77.     #rysowanie jablek
  78.     for jablko in jablka:
  79.         ekran.blit(jablko.obraz, jablko.rect)
  80.     #wyswietlenie wyniku
  81.     tekst_z_wynikiem = moja_czcionka.render(f'Wynik: {Punkty}', False, (0, 0, 0))
  82.     ekran.blit(tekst_z_wynikiem, (16, 16))
  83.     #sprawdź czy koniec gry
  84.     if waz.sprawdz_kolizje():
  85.         tekst_z_przegrana = moja_czcionka.render('Przegrana', False, (200,0,0))
  86.         ekran.blit(tekst_z_przegrana, (SZEROKOSC_EKRANU/2-50, WYSOKOSC_EKRANU/2))
  87.         gra_dziala = False
  88.    
  89.     pygame.display.flip()
  90.     zegar.tick(30)
  91.  
  92. time.sleep(3)
  93. pygame.quit()
Add Comment
Please, Sign In to add comment