Advertisement
Orleon

Untitled

Nov 13th, 2021
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.90 KB | None | 0 0
  1. import random
  2.  
  3. import pygame
  4.  
  5. pygame.init()  # Включаем модуль pygame
  6.  
  7. def draw_text(screen, text, size, x, y, color):
  8.     font_name = pygame.font.match_font('arial')    # Выбираем тип шрифта для текста
  9.     font = pygame.font.Font(font_name, size)       # Шрифт выбранного типа и размера
  10.     text_image = font.render(text, True, color)    # Превращаем текст в картинку
  11.     text_rect = text_image.get_rect()              # Задаем рамку картинки с текстом
  12.     text_rect.center = (x,y)                       # Переносим текст в координаты
  13.     screen.blit(text_image, text_rect)             # Рисуем текст на экране
  14.  
  15.  
  16. width = 1200
  17. height = 700
  18. fps = 30
  19. name = "Arkanoid"
  20. speedx = 10    # Скорость по горизонтали
  21. speedy = 10    # Скорость по вертикали
  22.  
  23. aquamarine = "#7FFFD4"  # Цвет
  24. gold = "#FFD700"
  25. red = "#FF0000"
  26. blue = '#00008B'
  27.  
  28. ball = pygame.image.load("smile.png")               # Загружаем картинку в спрайт
  29. ball_rect = ball.get_rect()                         # Получаем рамку спрайта
  30. lives = 3
  31.  
  32. racket = pygame.image.load("racket.png")            # Загружаем картинку в спрайт
  33. racket_rect = racket.get_rect()                     # Получаем рамку спрайта
  34. racket_rect.x = width / 2
  35. racket_rect.y = height - 50
  36.  
  37.  
  38. screen = pygame.display.set_mode((width, height))   # Параметры экрана
  39.  
  40. pygame.display.set_caption(name)        # Заголовок экрана
  41.  
  42. clock = pygame.time.Clock()             # Таймер для игры
  43.  
  44. run = True
  45. while run:
  46.     clock.tick(fps)                     # Тикаем таймером
  47.     for i in pygame.event.get():        # Перебираем все события в игре
  48.         if i.type == pygame.QUIT:       # Проверяем на событие выхода
  49.             run = False                 # Завершаем игровой цикл
  50.  
  51.     ball_rect.x += speedx               # Изменяем координату х рамки спрайта
  52.     ball_rect.y += speedy               # Изменяем координату х рамки спрайта
  53.  
  54.     key = pygame.key.get_pressed()      # Считываем нажатия клавиш на клавиатуре
  55.  
  56.     if key[pygame.K_LEFT]:              # Если нажата клавиша стрелка влево
  57.         racket_rect.x -= 10
  58.  
  59.     if key[pygame.K_RIGHT]:             # Если нажата клавиша стрелка вправо
  60.         racket_rect.x += 10
  61.  
  62.     if ball_rect.colliderect(racket_rect):         # Если рамка смайлика столкнулась с рамкой ракетки
  63.         speedy = -speedy
  64.  
  65.     if ball_rect.top > height:      # Проверка на достижение нижней границы экрана
  66.         lives -= 1
  67.         ball_rect.y = 1
  68.         ball_rect.x = random.randint(1, width-100)
  69.  
  70.     if ball_rect.right > width:        # Проверка на достижение правой границы экрана
  71.         speedx = -speedx
  72.  
  73.     if ball_rect.top < 0:              # Проверка на достижение верхней границы экрана
  74.         speedy = -speedy
  75.  
  76.     if ball_rect.left < 0:             # Проверка на достижение левой границы экрана
  77.         speedx = -speedx
  78.  
  79.  
  80.     screen.fill(aquamarine)                        # Задний фон
  81.     draw_text(screen, str(lives), 50, 50, 50, blue)
  82.     screen.blit(racket, racket_rect)    # Рисуем ракетку
  83.     screen.blit(ball, ball_rect)        # Рисуем спрайт с рамкой
  84.     pygame.display.update()             # Обновляем экран
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement