Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import random
- pygame.init() # Включаем модуль pygame
- lives = 3
- width = 1200 # Ширина экрана
- height = 700 # Высота экрана
- fps = 30
- game_name = "Arkanoid" # Название игры
- cyan = "#E0FFFF"
- darkblue = "#00008B"
- def draw_text(screen, text, size, x, y, color):
- font_name = pygame.font.match_font('arial') # Выбираем тип шрифта для текста
- font = pygame.font.Font(font_name, size) # Шрифт выбранного типа и размера
- text_image = font.render(text, True, color) # Превращаем текст в картинку
- text_rect = text_image.get_rect() # Задаем рамку картинки с текстом
- text_rect.center = (x, y) # Переносим текст в координаты
- screen.blit(text_image, text_rect) # Рисуем текст на экране
- bg = pygame.image.load('bg.jpg')
- bg_rect = bg.get_rect()
- pic = pygame.image.load('smile.png') # Загрузили спрайт
- pic = pygame.transform.scale(pic, (50, 50)) # Масштаб 100*100 пикселей
- pic_rect = pic.get_rect() # Получаем рамку спрайта
- rack = pygame.image.load("racket.png")
- rack_rect = rack.get_rect()
- rack_rect.x = width / 2 - rack.get_width() / 2
- rack_rect.y = height - 50
- ping = pygame.mixer.Sound('ping.mp3') # Звук отскока
- loose = pygame.mixer.Sound('loose.mp3') # Звук отскока
- speedx = 10 # Скорость по горизонтали
- speedy = 10 # Скорость по вертикали
- icon = pygame.image.load('icon.png')
- pygame.display.set_icon(icon) # Устанавливаем иконку в окно
- screen = pygame.display.set_mode((width, height))
- pygame.display.set_caption(game_name) # Заголовок окна
- clock = pygame.time.Clock()
- run = True
- pygame.mixer.music.load('8bit.mp3')
- pygame.mixer.music.set_volume(0.1)
- pygame.mixer.music.play(-1)
- while run:
- clock.tick(fps) # Тикаем со скоростью fps
- for i in pygame.event.get():
- if i.type == pygame.QUIT: # Если тип игрового события - это выход
- run = False # Завершаем игровой цикл
- key = pygame.key.get_pressed()
- if key[pygame.K_a] and rack_rect.left > 0: # Если нажата левая кнопка и положение внтури окна
- rack_rect.x -= 10
- if key[pygame.K_d] and rack_rect.right < width: # Если нажата правая кнопка
- rack_rect.x += 10
- pic_rect.x += speedx
- pic_rect.y += speedy
- bg_rect.x -= 1
- if bg_rect.right <= width:
- bg_rect.x = 0
- if pic_rect.bottom >= height: # Отскок от нижней границы
- lives -= 1 # lives
- loose.play()
- pic_rect.y = 1
- pic_rect.x = random.randint(0, width)
- if lives == 0:
- run = False
- print('Game Over!')
- if pic_rect.top <= 0: # Отскок от верхней границы
- speedy = -speedy
- ping.play()
- if pic_rect.right >= width: # Отскок от правой границы
- speedx = -speedx
- ping.play()
- if pic_rect.left <= 0: # отскок от левой границы экрана
- speedx = -speedx
- ping.play()
- if pic_rect.colliderect(rack_rect): # отскок от ракетки
- speedy = -speedy
- ping.play()
- # screen.fill(cyan) # Заливаем экран цветом
- screen.blit(bg, bg_rect)
- draw_text(screen, "Lives: " + str(lives), 30, 50, 30, darkblue)
- screen.blit(pic, pic_rect) # Отрисовываем спрайт с его рамкой
- screen.blit(rack, rack_rect) # Отрисовываем ракетку
- pygame.display.update() # Обновляем экран
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement