DamioTV

Untitled

Apr 27th, 2022
1,091
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.25 KB | None | 0 0
  1. KOD ZE SLAJDU 11 -----------------------------------------------------------------------------------
  2.  
  3. import pygame​
  4. import sys
  5. from pygame.locals import *​
  6. # inicjacja modułu pygame​
  7. pygame.init()
  8. # szerokość i wysokość okna gry​
  9. OKNOGRY_SZER = 800
  10. OKNOGRY_WYS = 400
  11. # kolor okna gry, składowe RGB zapisane w tupli​
  12. LT_BLUE = (230, 255, 255)
  13. # powierzchnia do rysowania, czyli inicjacja pola gry​
  14. oknogry = pygame.display.set_mode((OKNOGRY_SZER, OKNOGRY_WYS), 0, 32)
  15. # tytuł okna gry​
  16. pygame.display.set_caption('Prosty Pong')
  17. # pętla główna programu​
  18. while True:​
  19.     # obsługa zdarzeń generowanych przez gracza​
  20.     for event in pygame.event.get():​
  21.         # przechwyć zamknięcie okna​
  22.         if event.type == QUIT:​
  23.             pygame.quit()
  24.             sys.exit()
  25.     # rysowanie obiektów​
  26.     oknogry.fill(LT_BLUE)  # kolor okna gry​
  27.     # zaktualizuj okno i wyświetl​
  28.     pygame.display.update()
  29.  
  30. KOD ZE SLAJDU 12 -----------------------------------------------------------------------------------
  31.  
  32. PALETKA_SZER = 100  # szerokość​
  33. PALETKA_WYS = 20  # wysokość​
  34. BLUE = (0, 0, 255)  # kolor wypełnienia​
  35. PALETKA_1_POZ = (350, 360)  # początkowa pozycja zapisana w tupli​
  36. # utworzenie powierzchni paletki, wypełnienie jej kolorem,​
  37. paletka1 = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
  38. paletka1.fill(BLUE)
  39. # ustawienie prostokąta zawierającego paletkę w początkowej pozycji​
  40. paletka1_prost = paletka1.get_rect()
  41. paletka1_prost.x = PALETKA_1_POZ[0]
  42. paletka1_prost.y = PALETKA_1_POZ[1]
  43.  
  44. # narysuj w oknie gry paletki​
  45. oknogry.blit(paletka1, paletka1_prost)
  46.  
  47. KOD ZE SLAJDU 13 -----------------------------------------------------------------------------------
  48.  
  49. # pętla główna programu​
  50. while True:​
  51.     # obsługa zdarzeń generowanych przez gracza​
  52.     for event in pygame.event.get():​
  53.         # przechwyć zamknięcie okna​
  54.         if event.type == QUIT:​
  55.             pygame.quit()
  56.             sys.exit()
  57.         # przechwyć ruch myszy​
  58.         if event.type == MOUSEMOTION:​
  59.             myszaX, myszaY = event.pos  # współrzędne x, y kursora myszy​
  60.             # oblicz przesunięcie paletki gracza​
  61.             przesuniecie = myszaX - (PALETKA_SZER / 2)
  62.             # jeżeli wykraczamy poza okno gry w prawo​
  63.             if przesuniecie > OKNOGRY_SZER - PALETKA_SZER:​
  64.                 przesuniecie = OKNOGRY_SZER - PALETKA_SZER​
  65.             # jeżeli wykraczamy poza okno gry w lewo​
  66.             if przesuniecie < 0:​
  67.                 przesuniecie = 0
  68.             # zaktualizuj położenie paletki w poziomie​
  69.             paletka1_prost.x = przesuniecie​
  70.     # rysowanie obiektów​
  71.     oknogry.fill(LT_BLUE)  # kolor okna gry​
  72.     # narysuj w oknie gry paletki​
  73.     oknogry.blit(paletka1, paletka1_prost)
  74.     # zaktualizuj okno i wyświetl​
  75.     pygame.display.update()
  76.  
  77. ​KOD ZE SLAJDU 14 -----------------------------------------------------------------------------------
  78.  
  79.     # przesuń piłkę po obsłużeniu zdarzeń​
  80.     pilka_prost.move_ip(P_PREDKOSC_X, P_PREDKOSC_Y)
  81.     # jeżeli piłka wykracza poza pole gry​
  82.     # z lewej/prawej – odwracamy kierunek ruchu poziomego piłki​
  83.     if pilka_prost.right >= OKNOGRY_SZER:​
  84.         P_PREDKOSC_X *= -1
  85.     if pilka_prost.left <= 0:​
  86.         P_PREDKOSC_X *= -1
  87.     if pilka_prost.top <= 0:  # piłka uciekła górą​
  88.         P_PREDKOSC_Y *= -1  # odwracamy kierunek ruchu pionowego piłki​
  89.     if pilka_prost.bottom >= OKNOGRY_WYS:  # piłka uciekła dołem​
  90.         pilka_prost.x = OKNOGRY_SZER / 2  # więc startuję ze środka​
  91.         pilka_prost.y = OKNOGRY_WYS / 2
  92.     # jeżeli piłka dotknie paletki gracza, skieruj ją w przeciwną stronę​
  93.     if pilka_prost.colliderect(paletka1_prost):​
  94.         P_PREDKOSC_Y *= -1
  95.         # zapobiegaj przysłanianiu paletki przez piłkę​
  96.         pilka_prost.bottom = paletka1_prost.top
  97.     # narysuj w oknie piłkę
  98.     oknogry.blit(pilka, pilka_prost)
  99.     # zaktualizuj zegar po narysowaniu obiektów
  100.     fpsClock.tick(FPS)
  101.  
  102. KOD ZE SLAJDU 15 -----------------------------------------------------------------------------------
  103.  
  104. # zmienne przechowujące punkty i funkcje wyświetlające punkty
  105. PKT_1 = '0'
  106. PKT_AI = '0'
  107. fontObj = pygame.font.Font('freesansbold.ttf', 64)  # czcionka komunikatów
  108.  
  109.  
  110. def drukuj_punkty1():
  111.     tekst1 = fontObj.render(PKT_1, True, (0, 0, 0))
  112.     tekst_prost1 = tekst1.get_rect()
  113.     tekst_prost1.center = (OKNOGRY_SZER / 2, OKNOGRY_WYS * 0.75)
  114.     oknogry.blit(tekst1, tekst_prost1)
  115.  
  116.  
  117. def drukuj_punktyAI():
  118.     tekstAI = fontObj.render(PKT_AI, True, (0, 0, 0))
  119.     tekst_prostAI = tekstAI.get_rect()
  120.     tekst_prostAI.center = (OKNOGRY_SZER / 2, OKNOGRY_WYS / 4)
  121.     oknogry.blit(tekstAI, tekst_prostAI)
  122.  
  123.     if pilka_prost.top <= 0:  # piłka uciekła górą
  124.         # P_PREDKOSC_Y *= -1  # odwracamy kierunek ruchu pionowego piłki
  125.         pilka_prost.x = OKNOGRY_SZER / 2  # więc startuję ze środka
  126.         pilka_prost.y = OKNOGRY_WYS / 2
  127.         PKT_1 = str(int(PKT_1) + 1)
  128.  
  129.     if pilka_prost.bottom >= OKNOGRY_WYS:  # piłka uciekła dołem
  130.         pilka_prost.x = OKNOGRY_SZER / 2  # więc startuję ze środka
  131.         pilka_prost.y = OKNOGRY_WYS / 2
  132.         PKT_AI = str(int(PKT_AI) + 1)
  133.  
  134.     oknogry.fill(LT_BLUE)  # wypełnienie okna gry kolorem
  135.  
  136.     drukuj_punkty1()  # wyświetl punkty gracza
  137.     drukuj_punktyAI()  # wyświetl punkty AI
  138.  
  139. KOD ZE SLAJDU 16 -----------------------------------------------------------------------------------
  140.  
  141. # przechwyć naciśnięcia klawiszy kursora
  142.         if event.type == pygame.KEYDOWN:
  143.             if event.key == pygame.K_LEFT:
  144.                 paletka1_prost.x -= 5
  145.                 if paletka1_prost.x < 0:
  146.                     paletka1_prost.x = 0
  147.             if event.key == pygame.K_RIGHT:
  148.                 paletka1_prost.x += 5
  149.                 if paletka1_prost.x > OKNOGRY_SZER - PALETKA_SZER:
  150.                     paletka1_prost.x = OKNOGRY_SZER - PALETKA_SZER
  151.  
  152. # powtarzalność klawiszy (delay, interval)
  153. pygame.key.set_repeat(50, 25)
  154.  
  155.  
Advertisement
Add Comment
Please, Sign In to add comment