Advertisement
roch2128

not a good pong game

Jul 23rd, 2019
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.96 KB | None | 0 0
  1. import pygame
  2. import sys
  3.  
  4. pygame.init()
  5.  
  6. clock = pygame.time.Clock()
  7. #------------------ resolution ------------------------
  8. display_width = 640
  9. display_height = 480
  10.  
  11. # ------------------- Colors ------------------------
  12.  
  13. white = (255, 255, 255)
  14. black = (0, 0, 0)
  15.  
  16. # ------------------------ gamedisplay -------------------
  17.  
  18. gameDisplay = pygame.display.set_mode((display_width, display_height))
  19. pygame.display.set_caption("pong")
  20.  
  21.  
  22. class Rec:
  23.     def __init__(self, x, y, w, h):
  24.         self.x = x
  25.         self.y = y
  26.         self.width = w
  27.         self.height = h
  28.         self.r = pygame.Rect(x, y, w, h)
  29.         self.xchange = 8
  30.         self.ychange = 12
  31.  
  32.  
  33. class Ball(Rec):
  34.     def __init__(self, x, y, w, h):
  35.         super().__init__(x, y, w, h)
  36.  
  37.     def draw(self):
  38.         pygame.draw.rect(gameDisplay, white, self.r)
  39.  
  40.     def move(self):
  41.         self.r.x += self.xchange
  42.         self.r.y += self.ychange
  43.  
  44.     def collision(self):
  45.         if self.r.x >= display_width - 20 or self.r.x <= 0:
  46.             self.xchange = self.xchange * -1
  47.         elif self.r.y >= display_height - 20 or self.r.y <= 0:
  48.             self.ychange = self.ychange * -1
  49.         if self.r.colliderect(paddle.r):
  50.             self.xchange = self.xchange * -1
  51.             self.ychange = self.ychange * -1
  52.  
  53.         if b1.r.y + b1.r.w / 2 >= paddleAI.r.y + paddleAI.r.h / 2:
  54.             paddleAI.r.y += paddle.ychange
  55.         else:
  56.             paddleAI.r.y -= paddle.ychange
  57.  
  58. # --- MainLoop ---
  59. up_pressed = False
  60. down_pressed = False
  61.  
  62. paddle = Rec(10, display_height / 2, 20, 89)
  63. paddleAI = Rec(display_width - 30, display_height / 2.5, 20, 89)
  64. block = Rec(0, -3, display_width, 6)
  65. block2 = Rec(0, display_height - 2, display_width, 10)
  66. b1 = Ball(display_width/2, display_height/2, 15, 15)
  67. while True:
  68.     for event in pygame.event.get():
  69.         if event.type == pygame.QUIT:
  70.             sys.exit()
  71.         if event.type == pygame.KEYDOWN:
  72.             if event.key == pygame.K_UP:
  73.                 up_pressed = True
  74.             if event.key == pygame.K_DOWN:
  75.                 down_pressed = True
  76.  
  77.         if event.type == pygame.KEYUP:
  78.             if event.key == pygame.K_UP:
  79.                 up_pressed = False
  80.             if event.key == pygame.K_DOWN:
  81.                 down_pressed = False
  82.     b1.move()
  83.     b1.collision()
  84.     if up_pressed:
  85.         paddle.r.y -= 10
  86.     elif down_pressed:
  87.         paddle.r.y += 10
  88.  
  89.     if paddle.r.y <= 0:
  90.         up_pressed = False
  91.     elif paddle.r.y + paddle.y >= display_width:
  92.         down_pressed = False
  93.  
  94.     if b1.r.colliderect(paddleAI.r):
  95.         b1.xchange = b1.xchange * -1
  96.         b1.ychange = b1.ychange * -1
  97.  
  98.     gameDisplay.fill(black)
  99.     pygame.draw.rect(gameDisplay, white, paddle.r)
  100.     pygame.draw.rect(gameDisplay, white, block.r)
  101.     pygame.draw.rect(gameDisplay, white, block2.r)
  102.     pygame.draw.rect(gameDisplay, white, paddleAI.r)
  103.     b1.draw()
  104.     pygame.display.flip()
  105.     clock.tick(30)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement