Advertisement
Orleon

Untitled

Nov 10th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.99 KB | None | 0 0
  1. import pygame
  2. import random
  3.  
  4. pygame.init()  # Включаем модуль pygame
  5.  
  6. lives = 3
  7. width = 1200  # Ширина экрана
  8. height = 700  # Высота экрана
  9. fps = 30
  10. game_name = "Arkanoid"  # Название игры
  11. cyan = "#E0FFFF"
  12. darkblue = "#00008B"
  13.  
  14. def draw_text(screen, text, size, x, y, color):
  15.     font_name = pygame.font.match_font('arial')  # Выбираем тип шрифта для текста
  16.     font = pygame.font.Font(font_name, size)     # Шрифт выбранного типа и размера
  17.     text_image = font.render(text, True, color)  # Превращаем текст в картинку
  18.     text_rect = text_image.get_rect()            # Задаем рамку картинки с текстом
  19.     text_rect.center = (x, y)                    # Переносим текст в координаты
  20.     screen.blit(text_image, text_rect)           # Рисуем текст на экране
  21.  
  22. bg = pygame.image.load('bg.jpg')
  23. bg_rect = bg.get_rect()
  24.  
  25. pic = pygame.image.load('smile.png')         # Загрузили спрайт
  26. pic = pygame.transform.scale(pic, (50, 50))  # Масштаб 100*100 пикселей
  27. pic_rect = pic.get_rect()                    # Получаем рамку спрайта
  28.  
  29. rack = pygame.image.load("racket.png")
  30. rack_rect = rack.get_rect()
  31. rack_rect.x = width / 2 - rack.get_width() / 2
  32. rack_rect.y = height - 50
  33.  
  34. ping = pygame.mixer.Sound('ping.mp3')    # Звук отскока
  35. loose = pygame.mixer.Sound('loose.mp3')    # Звук отскока
  36.  
  37. speedx = 10  # Скорость по горизонтали
  38. speedy = 10  # Скорость по вертикали
  39.  
  40. icon = pygame.image.load('icon.png')
  41. pygame.display.set_icon(icon)  # Устанавливаем иконку в окно
  42.  
  43. screen = pygame.display.set_mode((width, height))
  44. pygame.display.set_caption(game_name)  # Заголовок окна
  45.  
  46. clock = pygame.time.Clock()
  47. run = True
  48.  
  49. pygame.mixer.music.load('8bit.mp3')
  50. pygame.mixer.music.set_volume(0.1)
  51. pygame.mixer.music.play(-1)
  52.  
  53. while run:
  54.     clock.tick(fps)  # Тикаем со скоростью fps
  55.     for i in pygame.event.get():
  56.         if i.type == pygame.QUIT:  # Если тип игрового события - это выход
  57.             run = False  # Завершаем игровой цикл
  58.  
  59.     key = pygame.key.get_pressed()
  60.     if key[pygame.K_a] and rack_rect.left > 0:  # Если нажата левая кнопка и положение внтури окна
  61.         rack_rect.x -= 10
  62.     if key[pygame.K_d] and rack_rect.right < width:  # Если нажата правая кнопка
  63.         rack_rect.x += 10
  64.  
  65.     pic_rect.x += speedx
  66.     pic_rect.y += speedy
  67.  
  68.     bg_rect.x -= 1
  69.     if bg_rect.right <= width:
  70.         bg_rect.x = 0
  71.  
  72.     if pic_rect.bottom >= height:  # Отскок от нижней границы
  73.         lives -= 1  # lives
  74.         loose.play()
  75.         pic_rect.y = 1
  76.         pic_rect.x = random.randint(0, width)
  77.         if lives == 0:
  78.             run = False
  79.             print('Game Over!')
  80.  
  81.     if pic_rect.top <= 0:  # Отскок от верхней границы
  82.         speedy = -speedy
  83.         ping.play()
  84.  
  85.     if pic_rect.right >= width:  # Отскок от правой границы
  86.         speedx = -speedx
  87.         ping.play()
  88.  
  89.     if pic_rect.left <= 0:  # отскок от левой границы экрана
  90.         speedx = -speedx
  91.         ping.play()
  92.  
  93.     if pic_rect.colliderect(rack_rect):  # отскок от ракетки
  94.         speedy = -speedy
  95.         ping.play()
  96.  
  97.     # screen.fill(cyan)  # Заливаем экран цветом
  98.     screen.blit(bg, bg_rect)
  99.     draw_text(screen, "Lives: " + str(lives), 30, 50, 30, darkblue)
  100.     screen.blit(pic, pic_rect)  # Отрисовываем спрайт с его рамкой
  101.     screen.blit(rack, rack_rect)  # Отрисовываем ракетку
  102.     pygame.display.update()  # Обновляем экран
  103.  
  104. pygame.quit()
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement