/
TIROCOP
/
GIgaFirst
Обзор
Документация
Войти
/
TIROCOP
/
GIgaFirst
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
main.py
97 строк
3 KB
Andrew
refresh
14 дек 2025, 15:13
14 дек 2025, 15:13
3554a7c
Код
Авторство
О чём код?
import pygame import random import sys # Инициализация Pygame pygame.init() # Настройки экрана WIDTH, HEIGHT = 600, 800 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Уклоняйся от квадратов!") # Цвета WHITE = (255, 255, 255) BLUE = (0, 0, 255) RED = (255, 0, 0) BLACK = (0, 0, 0) # Игрок player_size = 50 player_x = WIDTH // 2 - player_size // 2 player_y = HEIGHT - 2 * player_size player_speed = 10 # Препятствия obstacle_size = 50 obstacle_speed = 7 obstacles = [] obstacle_frequency = 25 # Чем меньше, тем чаще появляются # Игровые переменные clock = pygame.time.Clock() score = 0 font = pygame.font.SysFont("comicsansms", 30) game_over = False # Основной цикл while True: clock.tick(60) screen.fill(WHITE) # События for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if not game_over: # Управление игроком keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player_x > 0: player_x -= player_speed if keys[pygame.K_RIGHT] and player_x < WIDTH - player_size: player_x += player_speed # Генерация препятствий if random.randint(1, obstacle_frequency) == 1: obstacles.append([random.randint(0, WIDTH - obstacle_size), -obstacle_size]) # Движение препятствий for obs in obstacles[:]: obs[1] += obstacle_speed if obs[1] > HEIGHT: obstacles.remove(obs) score += 1 # Успешно уклонился # Проверка столкновений player_rect = pygame.Rect(player_x, player_y, player_size, player_size) for obs in obstacles: obs_rect = pygame.Rect(obs[0], obs[1], obstacle_size, obstacle_size) if player_rect.colliderect(obs_rect): game_over = True # Отрисовка препятствий for obs in obstacles: pygame.draw.rect(screen, RED, (obs[0], obs[1], obstacle_size, obstacle_size)) # Отрисовка игрока pygame.draw.rect(screen, BLUE, (player_x, player_y, player_size, player_size)) # Отрисовка счёта score_text = font.render(f"Счёт: {score}", True, BLACK) screen.blit(score_text, (10, 10)) # Экран "Game Over" if game_over: game_over_text = font.render("Игра окончена! Пробел — перезапуск", True, BLACK) screen.blit(game_over_text, (WIDTH // 2 - 250, HEIGHT // 2)) keys = pygame.key.get_pressed() if keys[pygame.K_SPACE]: # Сброс игры game_over = False obstacles.clear() score = 0 player_x = WIDTH // 2 - player_size // 2 pygame.display.update()