Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. import pygame
  2. import sys
  3. from pygame.locals import *
  4.  
  5. # import random
  6.  
  7. pygame.init()
  8.  
  9. # parametry ekranu
  10.  
  11. OKNOGRY_SZER = 640
  12. OKNOGRY_WYS = 480
  13. LT_BLACK = (0, 0, 0)
  14.  
  15. oknogry = pygame.display.set_mode((OKNOGRY_SZER, OKNOGRY_WYS), 0, 32)
  16. pygame.display.set_caption('PONG')
  17.  
  18. # parametry paletki gracza
  19.  
  20. PALETKA_SZER = 10
  21. PALETKA_WYS = 100
  22. CONSOLE_GREEN = (35, 250, 35)
  23. PALETKA_1_POZ = (620, 215)
  24. paletka1 = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
  25. paletka1.fill(CONSOLE_GREEN)
  26. paletka1_prost = paletka1.get_rect()
  27. paletka1_prost.x = PALETKA_1_POZ[0]
  28. paletka1_prost.y = PALETKA_1_POZ[1]
  29.  
  30. # parametry pilki
  31.  
  32. P_SZER = 15
  33. P_WYS = 16
  34. P_PREDKOSC_X = 6
  35. P_PREDKOSC_Y = 6
  36. pilka = pygame.Surface([P_SZER, P_WYS], pygame.SRCALPHA, 32).convert_alpha()
  37. pygame.draw.ellipse(pilka, CONSOLE_GREEN, [0, 0, P_SZER, P_WYS])
  38. pilka_prost = pilka.get_rect()
  39. pilka_prost.x = (OKNOGRY_SZER - 10) / 2
  40. pilka_prost.y = (OKNOGRY_WYS - 10) / 2
  41.  
  42. # ustawienia animacji
  43. FPS = 30
  44. fpsClock = pygame.time.Clock()
  45.  
  46. # paletka AI
  47. PALETKA_AI_POZ = (10, 215)
  48. paletkaAI = pygame.Surface([PALETKA_SZER, PALETKA_WYS])
  49. paletkaAI.fill(CONSOLE_GREEN)
  50. paletkaAI_prost = paletkaAI.get_rect()
  51. paletkaAI_prost.x = PALETKA_AI_POZ[0]
  52. paletkaAI_prost.y = PALETKA_AI_POZ[1]
  53. PREDKOSC_AI = 3
  54.  
  55. PUNKTY_GRACZA = 0
  56. PUNKTY_AI = 0
  57. font = pygame.font.SysFont("calibri", 40)
  58. # pętla głwna gry
  59. while True:
  60. # obsługa zdarzeń generowanych przez gracza
  61. for event in pygame.event.get():
  62. # przechwycenia zamknięcia okna
  63. if event.type == QUIT:
  64. pygame.quit()
  65. sys.exit()
  66.  
  67. # przechwyć naciśniecia klawiszy kursora
  68. if event.type == pygame.KEYDOWN:
  69. if event.key == pygame.K_UP:
  70. paletka1_prost.y -= 20
  71. if paletka1_prost.y < 10:
  72. paletka1_prost.y = 10
  73. if event.key == pygame.K_DOWN:
  74. paletka1_prost.y += 20
  75. if paletka1_prost.y > 470 - PALETKA_WYS:
  76. paletka1_prost.y = 470 - PALETKA_WYS
  77.  
  78. wynik1 = font.render(str(PUNKTY_AI), True, (35, 250, 35))
  79. wynik2 = font.render(str(PUNKTY_GRACZA), True, (35, 250, 35))
  80. fpsClock.tick(FPS)
  81.  
  82. oknogry.fill(LT_BLACK)
  83. ramka = pygame.draw.rect(oknogry, (35, 250, 35), Rect((5, 5), (630, 470)), 2)
  84. linia_srodka = pygame.draw.aaline(oknogry, (35, 250, 35), (OKNOGRY_SZER / 2, 5),
  85. (OKNOGRY_SZER / 2, OKNOGRY_WYS - 5))
  86. oknogry.blit(paletka1, paletka1_prost)
  87. oknogry.blit(paletkaAI, paletkaAI_prost)
  88. oknogry.blit(pilka, pilka_prost)
  89. oknogry.blit(wynik1, (250., 210.))
  90. oknogry.blit(wynik2, (380., 210.))
  91. pygame.display.update()
  92.  
  93. # ruch piłki
  94. # przesuwanie pilki po obsluzeniu zdezen
  95. pilka_prost.move_ip(P_PREDKOSC_X, P_PREDKOSC_Y)
  96. # jezeli pilka wykracza poza obszar gry
  97. # z lewej/prawej - odwracamy kierunek ruchu poziomego pilki
  98. if pilka_prost.right >= OKNOGRY_SZER - 15:
  99. pilka_prost.x = OKNOGRY_SZER / 2
  100. pilka_prost.y = OKNOGRY_WYS / 2
  101. PUNKTY_AI += 1
  102. if pilka_prost.left <= 0:
  103. pilka_prost.x = OKNOGRY_SZER / 2
  104. pilka_prost.y = OKNOGRY_WYS / 2
  105. PUNKTY_GRACZA += 1
  106. # pilka ucieka gora
  107. if pilka_prost.top <= 10:
  108. P_PREDKOSC_Y *= -1
  109. # pilka ucieka dolem
  110. if pilka_prost.bottom >= OKNOGRY_WYS - 10:
  111. P_PREDKOSC_Y *= -1
  112. # zderzenie z paletka
  113. if pilka_prost.colliderect(paletka1_prost):
  114. # P_PREDKOSC_Y *= -1
  115. P_PREDKOSC_X *= -1
  116. # obsluga AI
  117. if pilka_prost.x <= OKNOGRY_SZER / 2:
  118. if pilka_prost.centery >= paletkaAI_prost.centery:
  119. paletkaAI_prost.y += PREDKOSC_AI
  120. if paletkaAI_prost.y > 470 - PALETKA_WYS:
  121. paletkaAI_prost.y = 470 - PALETKA_WYS
  122. elif pilka_prost.centery <= paletkaAI_prost.centery:
  123. paletkaAI_prost.y -= PREDKOSC_AI
  124. if paletkaAI_prost.y < 10:
  125. paletkaAI_prost.y = 10
  126. if pilka_prost.colliderect(paletkaAI_prost):
  127. P_PREDKOSC_Y *= -1
  128. if pilka_prost.colliderect(paletkaAI_prost):
  129. P_PREDKOSC_X *= -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement