Advertisement
giganciprogramowania

lekcja 13 - projekt.py

Mar 4th, 2022
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.49 KB | None | 0 0
  1. import pygame
  2.  
  3. from Platforma import Platforma
  4. from Kulka import Kulka
  5. from Klocek import Klocek
  6.  
  7. #wysokość i szerokość ekranu
  8. SZEROKOSC_EKRANU = 1024
  9. WYSOKOSC_EKRANU = 800
  10. Poziom = 0
  11. Zycia = 3
  12.  
  13. #ustawienia pygame
  14. pygame.init()
  15. pygame.font.init()
  16.  
  17. #obiekty czcionki, ekranu, zegara i tła
  18. czcionka = pygame.font.SysFont('Comic Sans MS', 24)
  19. ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
  20. zegar = pygame.time.Clock()
  21. obraz_tla = pygame.image.load('images/background.png')
  22.  
  23. #poziomy gry
  24. poziom1 = [
  25.     [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  26.     [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  27.     [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  28.     [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  29.     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  30.     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  31.     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  32. ]
  33. poziom2 = [
  34.     [0, 0, 1, 2, 3, 3, 2, 1, 0, 0],
  35.     [0, 1, 1, 1, 2, 2, 1, 1, 1, 0],
  36.     [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  37.     [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  38.     [0, 0, 2, 0, 0, 0, 0, 2, 0, 0],
  39.     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  40.     [0, 2, 0, 2, 0, 0, 2, 0, 2, 0]
  41. ]
  42. poziom3 = [
  43.     [2, 3, 2, 2, 2, 2, 2, 2, 3, 2],
  44.     [2, 1, 3, 1, 1, 1, 1, 3, 1, 2],
  45.     [2, 3, 1, 3, 1, 1, 3, 1, 3, 2],
  46.     [3, 2, 2, 2, 3, 3, 2, 2, 2, 3],
  47.     [0, 0, 2, 2, 3, 3, 2, 2, 0, 0],
  48.     [0, 0, 2, 0, 3, 3, 0, 2, 0, 0],
  49.     [0, 0, 3, 0, 3, 3, 0, 3, 0, 0]
  50. ]
  51.  
  52. klocki = pygame.sprite.Group()
  53. def dodaj_klocki():
  54.     wczytany_poziom = None
  55.     if Poziom == 0:
  56.         wczytany_poziom = poziom1
  57.     if Poziom == 1:
  58.         wczytany_poziom = poziom2
  59.     if Poziom == 2:
  60.         wczytany_poziom = poziom3
  61.  
  62.     for i in range(10):
  63.         for j in range(7):
  64.             if wczytany_poziom[j][i] != 0:
  65.                 klocek = Klocek(32+i*96, 32+j*48, wczytany_poziom[j][i])
  66.                 klocki.add(klocek)
  67. dodaj_klocki()
  68.  
  69. platforma = Platforma()
  70. kulka = Kulka()
  71.  
  72. #glowna petla
  73. gra_dziala = True
  74. while gra_dziala:
  75.     for zdarzenie in pygame.event.get():
  76.         if zdarzenie.type == pygame.KEYDOWN:
  77.             if zdarzenie.key == pygame.K_ESCAPE:
  78.                 gra_dziala = False
  79.         elif zdarzenie.type == pygame.QUIT:
  80.             gra_dziala = False
  81.    
  82.     #sterowanie platforma
  83.     wcisniete_klawisze=pygame.key.get_pressed()
  84.     if wcisniete_klawisze[pygame.K_a]:
  85.         platforma.ruszaj_platforma(-1)
  86.     if wcisniete_klawisze[pygame.K_d]:
  87.         platforma.ruszaj_platforma(1)      
  88.    
  89.     #sprawdzenie czy wszystkie klocki zostaly zniszczone
  90.     if len(klocki.sprites()) == 0:
  91.         Poziom += 1
  92.         if Poziom >= 3:
  93.             break
  94.         kulka.zresetuj_pozycje()
  95.         platforma.zresetuj_pozycje()
  96.         dodaj_klocki()
  97.    
  98.  
  99.     #aktualizacja kulki
  100.     kulka.aktualizuj(platforma, klocki)
  101.  
  102.     #sprawdzenie czy kulka dotknela dolnej krawedzi
  103.     if kulka.przegrana:
  104.         Zycia -= 1
  105.         if Zycia <= 0:
  106.             break
  107.         kulka.zresetuj_pozycje()
  108.         platforma.zresetuj_pozycje()
  109.  
  110.     #aktualizacja klockow i platformy
  111.     klocki.update()
  112.     platforma.aktualizuj()
  113.    
  114.     #wyswietl tlo
  115.     ekran.blit(obraz_tla, (0,0))
  116.  
  117.     #wyswietl klocki
  118.     for brick in klocki:
  119.         ekran.blit(brick.obraz, brick.pozycja)
  120.    
  121.     #wyswietl gracza i kulkę
  122.     ekran.blit(platforma.obraz, platforma.pozycja)
  123.     ekran.blit(kulka.obraz, kulka.pozycja)
  124.  
  125.     #wyswietlenie wyniku
  126.     tekst = czcionka.render(f'Poziom: {Poziom+1}, Życia: {Zycia}', False, (255, 0, 255))
  127.     ekran.blit(tekst, (16, 16))
  128.  
  129.     pygame.display.flip()
  130.     zegar.tick(30)
  131.  
  132. pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement