Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import sys
- from pygame.locals import *
- # import random
- pygame.init()
- # parametry ekranu
- OKNOGRY_SZER = 640
- OKNOGRY_WYS = 480
- LT_BLACK = (0, 0, 0)
- oknogry = pygame.display.set_mode((OKNOGRY_SZER, OKNOGRY_WYS), 0, 32)
- pygame.display.set_caption('PONG')
- # parametry paletki gracza
- PALETKA_SZER = 10
- PALETKA_WYS = 100
- CONSOLE_GREEN = (35, 250, 35)
- PALETKA_1_POZ = (620, 215)
- paletka1 = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
- paletka1.fill(CONSOLE_GREEN)
- paletka1_prost = paletka1.get_rect()
- paletka1_prost.x = PALETKA_1_POZ[0]
- paletka1_prost.y = PALETKA_1_POZ[1]
- # parametry pilki
- P_SZER = 15
- P_WYS = 16
- P_PREDKOSC_X = 6
- P_PREDKOSC_Y = 6
- pilka = pygame.Surface([P_SZER, P_WYS], pygame.SRCALPHA, 32).convert_alpha()
- pygame.draw.ellipse(pilka, CONSOLE_GREEN, [0, 0, P_SZER, P_WYS])
- pilka_prost = pilka.get_rect()
- pilka_prost.x = (OKNOGRY_SZER - 10) / 2
- pilka_prost.y = (OKNOGRY_WYS - 10) / 2
- # ustawienia animacji
- FPS = 30
- fpsClock = pygame.time.Clock()
- # paletka AI
- PALETKA_AI_POZ = (10, 215)
- paletkaAI = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
- paletkaAI.fill(CONSOLE_GREEN)
- paletkaAI_prost = paletkaAI.get_rect()
- paletkaAI_prost.x = PALETKA_AI_POZ[0]
- paletkaAI_prost.y = PALETKA_AI_POZ[1]
- PREDKOSC_AI = 3
- PUNKTY_GRACZA = 0
- PUNKTY_AI = 0
- font = pygame.font.SysFont("calibri", 40)
- # pętla głwna gry
- while True:
- # obsługa zdarzeń generowanych przez gracza
- for event in pygame.event.get():
- # przechwycenia zamknięcia okna
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
- # przechwyć naciśniecia klawiszy kursora
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_UP:
- paletka1_prost.y -= 20
- if paletka1_prost.y < 10:
- paletka1_prost.y = 10
- if event.key == pygame.K_DOWN:
- paletka1_prost.y += 20
- if paletka1_prost.y > 470 - PALETKA_WYS:
- paletka1_prost.y = 470 - PALETKA_WYS
- wynik1 = font.render(str(PUNKTY_AI), True, (35, 250, 35))
- wynik2 = font.render(str(PUNKTY_GRACZA), True, (35, 250, 35))
- fpsClock.tick(FPS)
- oknogry.fill(LT_BLACK)
- ramka = pygame.draw.rect(oknogry, (35, 250, 35), Rect((5, 5), (630, 470)), 2)
- linia_srodka = pygame.draw.aaline(oknogry, (35, 250, 35), (OKNOGRY_SZER / 2, 5),
- (OKNOGRY_SZER / 2, OKNOGRY_WYS - 5))
- oknogry.blit(paletka1, paletka1_prost)
- oknogry.blit(paletkaAI, paletkaAI_prost)
- oknogry.blit(pilka, pilka_prost)
- oknogry.blit(wynik1, (250., 210.))
- oknogry.blit(wynik2, (380., 210.))
- pygame.display.update()
- # ruch piłki
- # przesuwanie pilki po obsluzeniu zdezen
- pilka_prost.move_ip(P_PREDKOSC_X, P_PREDKOSC_Y)
- # jezeli pilka wykracza poza obszar gry
- # z lewej/prawej - odwracamy kierunek ruchu poziomego pilki
- if pilka_prost.right >= OKNOGRY_SZER - 15:
- pilka_prost.x = OKNOGRY_SZER / 2
- pilka_prost.y = OKNOGRY_WYS / 2
- PUNKTY_AI += 1
- if pilka_prost.left <= 0:
- pilka_prost.x = OKNOGRY_SZER / 2
- pilka_prost.y = OKNOGRY_WYS / 2
- PUNKTY_GRACZA += 1
- # pilka ucieka gora
- if pilka_prost.top <= 10:
- P_PREDKOSC_Y *= -1
- # pilka ucieka dolem
- if pilka_prost.bottom >= OKNOGRY_WYS - 10:
- P_PREDKOSC_Y *= -1
- # zderzenie z paletka
- if pilka_prost.colliderect(paletka1_prost):
- # P_PREDKOSC_Y *= -1
- P_PREDKOSC_X *= -1
- # obsluga AI
- if pilka_prost.x <= OKNOGRY_SZER / 2:
- if pilka_prost.centery >= paletkaAI_prost.centery:
- paletkaAI_prost.y += PREDKOSC_AI
- if paletkaAI_prost.y > 470 - PALETKA_WYS:
- paletkaAI_prost.y = 470 - PALETKA_WYS
- elif pilka_prost.centery <= paletkaAI_prost.centery:
- paletkaAI_prost.y -= PREDKOSC_AI
- if paletkaAI_prost.y < 10:
- paletkaAI_prost.y = 10
- if pilka_prost.colliderect(paletkaAI_prost):
- P_PREDKOSC_Y *= -1
- if pilka_prost.colliderect(paletkaAI_prost):
- P_PREDKOSC_X *= -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement