Исходник Игра "Space Adventure Game " на Python + PyGame

Killezzo

Участник
Автор темы
28
15
Добрый вечер! Я хотел бы поделиться с вами ещё одним исходным кодом моей игры, который был написан всего за 5 минут. Не стесняйтесь использовать его по своему усмотрению – может быть, кто-то добавит в него что-то интересное и улучшит игровой опыт. Приятного изучения Python!

Python:
import pygame
import sys
import random

# Инициализация Pygame
pygame.init()

# Определение цветов
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 0, 0)

# Размеры окна
WIDTH, HEIGHT = 1920, 1080

# Создание окна
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Space Adventure Game")

# Игровые переменные
player_size = 50
player_x = WIDTH // 2 - player_size // 2
player_y = HEIGHT - 2 * player_size

obstacle_size = 50
obstacle_speed = 5
obstacle_frequency = 25
obstacles = []

clock = pygame.time.Clock()

font = pygame.font.Font(None, 36)
score = 0

# Загрузка изображения игрока
player_image = pygame.image.load("player.png")
player_image = pygame.transform.scale(player_image, (player_size, player_size))

# Загрузка изображения препятствия
obstacle_image = pygame.image.load("obstacle.png")
obstacle_image = pygame.transform.scale(obstacle_image, (obstacle_size, obstacle_size))

# Главный цикл игры
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= 5
    if keys[pygame.K_RIGHT] and player_x < WIDTH - player_size:
        player_x += 5

    # Увеличение частоты появления препятствий в зависимости от количества очков
    if random.randint(1, obstacle_frequency - score // 100) == 1:
        obstacle_x = random.randint(0, WIDTH - obstacle_size)
        obstacle_y = 0
        obstacles.append([obstacle_x, obstacle_y])

    # Обновление координат препятствий
    for obstacle in obstacles:
        obstacle[1] += obstacle_speed

    # Удаление препятствий, вышедших за пределы экрана
    obstacles = [obstacle for obstacle in obstacles if obstacle[1] < HEIGHT]

    # Проверка столкновения с препятствиями
    for obstacle in obstacles:
        if (
            player_x < obstacle[0] + obstacle_size
            and player_x + player_size > obstacle[0]
            and player_y < obstacle[1] + obstacle_size
            and player_y + player_size > obstacle[1]
        ):
            pygame.quit()
            sys.exit()

    # Очки
    score += 1

    # Отрисовка на экране
    screen.fill(BLUE)
    screen.blit(player_image, (player_x, player_y))

    for obstacle in obstacles:
        screen.blit(obstacle_image, (obstacle[0], obstacle[1]))

    score_text = font.render(f"Score: {score}", True, WHITE)
    screen.blit(score_text, (10, 10))

    pygame.display.flip()

    clock.tick(30)
 

Вложения

  • obstacle.png
    obstacle.png
    187 KB · Просмотры: 12
  • player.png
    player.png
    325 KB · Просмотры: 13
Последнее редактирование: