import pygame
import random
pygame.init()
# ---------- НАСТРОЙКА ОКНА ИГРЫ ----------
WIDTH, HEIGHT = 800, 600
WINDOW = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Поймай звезду")
# ---------- ЦВЕТА ----------
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (50, 100, 255)
YELLOW = (255, 255, 0)
RED = (255, 50, 50)
# ---------- ИГРОК ----------
player_size = 50
player_x = WIDTH // 2 - player_size // 2
player_y = HEIGHT - player_size - 10
player_speed = 7
# ---------- ЗВЕЗДА ----------
star_size = 30
star_x = random.randint(0, WIDTH - star_size)
star_y = -star_size
star_speed = 4
# ---------- СЧЁТ ----------
score = 0
font = pygame.font.SysFont("arial", 32)
# ---------- ТАЙМЕР И УРОВНИ СЛОЖНОСТИ ----------
clock = pygame.time.Clock()
FPS = 60
# Для постепенного усложнения — ускоряем звезду
def increase_difficulty(current_score, current_star_speed):
# каждые 5 очков чуть увеличиваем скорость
new_speed = 4 + current_score * 0.3
return new_speed
# Функция для вывода текста
def draw_text(text, x, y, color=WHITE, center=False):
img = font.render(text, True, color)
rect = img.get_rect()
if center:
rect.center = (x, y)
else:
rect.topleft = (x, y)
WINDOW.blit(img, rect)
# ---------- ГЛАВНЫЙ ЦИКЛ ИГРЫ ----------
running = True
game_over = False
while running:
clock.tick(FPS)
# ----- ОБРАБОТКА СОБЫТИЙ -----
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Если игра окончена — по нажатию клавиши перезапускаем
if game_over and event.type == pygame.KEYDOWN:
# Сброс всех параметров
game_over = False
score = 0
player_x = WIDTH // 2 - player_size // 2
star_x = random.randint(0, WIDTH - star_size)
star_y = -star_size
star_speed = 4
keys = pygame.key.get_pressed()
if not game_over:
# ----- ЛОГИКА ИГРЫ -----
# Движение игрока
if keys[pygame.K_LEFT]:
player_x -= player_speed
if keys[pygame.K_RIGHT]:
player_x += player_speed