Advertisement
Penggrin

Untitled

Sep 27th, 2022
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.59 KB | None | 0 0
  1. from pygame import *
  2.  
  3. back = (200, 255, 255) # цвет фона (background)
  4. win_width = 600
  5. win_height = 500
  6. window = display.set_mode((win_width, win_height))
  7.  
  8. #класс родитель
  9. class GameSprite(sprite.Sprite):
  10.     def init(self, player_image, player_x, player_y, player_speed, wight, height):
  11.         super().init()
  12.         self.image = transform.scale(image.load(player_image), (wight, height))
  13.         self.speed = player_speed
  14.         self.rect = self.image.get_rect()
  15.         self.rect.x = player_x
  16.         self.rect.y = player_y
  17.     def reset(self):
  18.         window.blit(self.image, (self.rect.x, self.rect.y))
  19.  
  20. class Hero(GameSprite):
  21.     def init(self, player_image, player_x, player_y, player_speed, wight, height):
  22.         super().init(player_image, player_x, player_y, player_speed, wight, height)
  23.     def update_r(self):
  24.         keys = key.get_pressed()
  25.         if keys[K_UP] and self.rect.y > 5:
  26.             self.rect.y -= self.speed
  27.         if keys[K_DOWN] and self.rect.y < win_height - 80:
  28.             self.rect.y += self.speed
  29.     def update_l(self):
  30.         keys = key.get_pressed()
  31.         if keys[K_w] and self.rect.y > 5:
  32.             self.rect.y -= self.speed
  33.         if keys[K_s] and self.rect.y < win_height - 80:
  34.             self.rect.y += self.speed
  35.  
  36. racket1 = Hero('racket.png', 30, 200, 4, 50, 150)
  37. racket2 = Hero('racket.png', 520, 200, 4, 50, 150)
  38. ball = GameSprite('tenis_ball.png', 200, 200, 4, 50, 50)
  39.  
  40. speed_x = 1
  41. speed_y = 1
  42.  
  43. font.init()
  44. font = font.Font(None, 35)
  45. lose1 = font.render('Игрок 1 ПРОИГРАЛ!', True, (180, 0, 0))
  46. lose2 = font.render('Игрок 2 ПРОИГРАЛ!', True, (180, 0, 0))
  47.  
  48. game = True
  49. finish = False
  50. clock = time.Clock()
  51. FPS = 60
  52.  
  53. while True:
  54.     for i in event.get():
  55.         if i.type==QUIT:
  56.             quit()
  57.     if finish != True:
  58.         window.fill(back)
  59.         racket1.update_l()
  60.         racket2.update_r()
  61.         ball.rect.x += speed_x
  62.         ball.rect.y += speed_y
  63.  
  64.         if sprite.collide_rect(racket1, ball) or sprite.collide_rect(racket2, ball):
  65.             speed_x *= -1
  66.             speed_y *= 1
  67.  
  68.         if ball.rect.y > win_height-50 or ball.rect.y < 0:
  69.                 speed_y *= -1
  70.  
  71.         if ball.rect.x < 0:
  72.             finish = True
  73.             window.blit(lose1, (200, 200))
  74.             game_over = True
  75.  
  76.         if ball.rect.x > win_width:
  77.             finish = True
  78.             window.blit(lose2, (200, 200))
  79.             game_over = True
  80.         racket1.reset()
  81.         racket2.reset()
  82.         ball.reset()
  83.    
  84.     display.update()
  85.     clock.tick(FPS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement