Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- KOD ZE SLAJDU 11 -----------------------------------------------------------------------------------
- import pygame
- import sys
- from pygame.locals import *
-
- # inicjacja modułu pygame
- pygame.init()
-
- # szerokość i wysokość okna gry
- OKNOGRY_SZER = 800
- OKNOGRY_WYS = 400
- # kolor okna gry, składowe RGB zapisane w tupli
- LT_BLUE = (230, 255, 255)
-
- # powierzchnia do rysowania, czyli inicjacja pola gry
- oknogry = pygame.display.set_mode((OKNOGRY_SZER, OKNOGRY_WYS), 0, 32)
- # tytuł okna gry
- pygame.display.set_caption('Prosty Pong')
-
- # pętla główna programu
- while True:
- # obsługa zdarzeń generowanych przez gracza
- for event in pygame.event.get():
- # przechwyć zamknięcie okna
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
-
- # rysowanie obiektów
- oknogry.fill(LT_BLUE) # kolor okna gry
-
- # zaktualizuj okno i wyświetl
- pygame.display.update()
- KOD ZE SLAJDU 12 -----------------------------------------------------------------------------------
- PALETKA_SZER = 100 # szerokość
- PALETKA_WYS = 20 # wysokość
- BLUE = (0, 0, 255) # kolor wypełnienia
- PALETKA_1_POZ = (350, 360) # początkowa pozycja zapisana w tupli
- # utworzenie powierzchni paletki, wypełnienie jej kolorem,
- paletka1 = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
- paletka1.fill(BLUE)
- # ustawienie prostokąta zawierającego paletkę w początkowej pozycji
- paletka1_prost = paletka1.get_rect()
- paletka1_prost.x = PALETKA_1_POZ[0]
- paletka1_prost.y = PALETKA_1_POZ[1]
- # narysuj w oknie gry paletki
- oknogry.blit(paletka1, paletka1_prost)
- KOD ZE SLAJDU 13 -----------------------------------------------------------------------------------
- # pętla główna programu
- while True:
- # obsługa zdarzeń generowanych przez gracza
- for event in pygame.event.get():
- # przechwyć zamknięcie okna
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
-
- # przechwyć ruch myszy
- if event.type == MOUSEMOTION:
- myszaX, myszaY = event.pos # współrzędne x, y kursora myszy
-
- # oblicz przesunięcie paletki gracza
- przesuniecie = myszaX - (PALETKA_SZER / 2)
-
- # jeżeli wykraczamy poza okno gry w prawo
- if przesuniecie > OKNOGRY_SZER - PALETKA_SZER:
- przesuniecie = OKNOGRY_SZER - PALETKA_SZER
- # jeżeli wykraczamy poza okno gry w lewo
- if przesuniecie < 0:
- przesuniecie = 0
- # zaktualizuj położenie paletki w poziomie
- paletka1_prost.x = przesuniecie
-
- # rysowanie obiektów
- oknogry.fill(LT_BLUE) # kolor okna gry
-
- # narysuj w oknie gry paletki
- oknogry.blit(paletka1, paletka1_prost)
-
- # zaktualizuj okno i wyświetl
- pygame.display.update()
- KOD ZE SLAJDU 14 -----------------------------------------------------------------------------------
- # przesuń piłkę po obsłużeniu zdarzeń
- pilka_prost.move_ip(P_PREDKOSC_X, P_PREDKOSC_Y)
-
- # jeżeli piłka wykracza poza pole gry
- # z lewej/prawej – odwracamy kierunek ruchu poziomego piłki
- if pilka_prost.right >= OKNOGRY_SZER:
- P_PREDKOSC_X *= -1
- if pilka_prost.left <= 0:
- P_PREDKOSC_X *= -1
-
- if pilka_prost.top <= 0: # piłka uciekła górą
- P_PREDKOSC_Y *= -1 # odwracamy kierunek ruchu pionowego piłki
-
- if pilka_prost.bottom >= OKNOGRY_WYS: # piłka uciekła dołem
- pilka_prost.x = OKNOGRY_SZER / 2 # więc startuję ze środka
- pilka_prost.y = OKNOGRY_WYS / 2
-
- # jeżeli piłka dotknie paletki gracza, skieruj ją w przeciwną stronę
- if pilka_prost.colliderect(paletka1_prost):
- P_PREDKOSC_Y *= -1
- # zapobiegaj przysłanianiu paletki przez piłkę
- pilka_prost.bottom = paletka1_prost.top
- # narysuj w oknie piłkę
- oknogry.blit(pilka, pilka_prost)
- # zaktualizuj zegar po narysowaniu obiektów
- fpsClock.tick(FPS)
- KOD ZE SLAJDU 15 -----------------------------------------------------------------------------------
- # zmienne przechowujące punkty i funkcje wyświetlające punkty
- PKT_1 = '0'
- PKT_AI = '0'
- fontObj = pygame.font.Font('freesansbold.ttf', 64) # czcionka komunikatów
- def drukuj_punkty1():
- tekst1 = fontObj.render(PKT_1, True, (0, 0, 0))
- tekst_prost1 = tekst1.get_rect()
- tekst_prost1.center = (OKNOGRY_SZER / 2, OKNOGRY_WYS * 0.75)
- oknogry.blit(tekst1, tekst_prost1)
- def drukuj_punktyAI():
- tekstAI = fontObj.render(PKT_AI, True, (0, 0, 0))
- tekst_prostAI = tekstAI.get_rect()
- tekst_prostAI.center = (OKNOGRY_SZER / 2, OKNOGRY_WYS / 4)
- oknogry.blit(tekstAI, tekst_prostAI)
- if pilka_prost.top <= 0: # piłka uciekła górą
- # P_PREDKOSC_Y *= -1 # odwracamy kierunek ruchu pionowego piłki
- pilka_prost.x = OKNOGRY_SZER / 2 # więc startuję ze środka
- pilka_prost.y = OKNOGRY_WYS / 2
- PKT_1 = str(int(PKT_1) + 1)
- if pilka_prost.bottom >= OKNOGRY_WYS: # piłka uciekła dołem
- pilka_prost.x = OKNOGRY_SZER / 2 # więc startuję ze środka
- pilka_prost.y = OKNOGRY_WYS / 2
- PKT_AI = str(int(PKT_AI) + 1)
- oknogry.fill(LT_BLUE) # wypełnienie okna gry kolorem
- drukuj_punkty1() # wyświetl punkty gracza
- drukuj_punktyAI() # wyświetl punkty AI
- KOD ZE SLAJDU 16 -----------------------------------------------------------------------------------
- # przechwyć naciśnięcia klawiszy kursora
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_LEFT:
- paletka1_prost.x -= 5
- if paletka1_prost.x < 0:
- paletka1_prost.x = 0
- if event.key == pygame.K_RIGHT:
- paletka1_prost.x += 5
- if paletka1_prost.x > OKNOGRY_SZER - PALETKA_SZER:
- paletka1_prost.x = OKNOGRY_SZER - PALETKA_SZER
- # powtarzalność klawiszy (delay, interval)
- pygame.key.set_repeat(50, 25)
Advertisement
Add Comment
Please, Sign In to add comment