🎮 Все игры 🚀 Космос
1 2 3 4 5
Урок 1

Корабль ездит

Что ты увидишь Синий корабль-треугольник внизу экрана едет влево-вправо по стрелкам. Файл: step1_ship.py
⬇️ Скачать код урока

📝 Весь код урока

import pygame, sys

WIDTH, HEIGHT = 600, 400
BG = (15, 16, 38)
WHITE = (234, 234, 234)
SHIP_COLOR = (108, 178, 255)

pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Космос")
clock = pygame.time.Clock()

SHIP_W, SHIP_H = 40, 28
ship_x = WIDTH // 2                 # ship_x — это ЦЕНТР корабля
ship_y = HEIGHT - SHIP_H - 12
SHIP_SPEED = 6

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]:
        ship_x -= SHIP_SPEED
    if keys[pygame.K_RIGHT]:
        ship_x += SHIP_SPEED
    ship_x = max(SHIP_W // 2, min(ship_x, WIDTH - SHIP_W // 2))

    screen.fill(BG)
    # корабль — синий треугольник носом вверх
    points = [(ship_x, ship_y), (ship_x - SHIP_W // 2, ship_y + SHIP_H), (ship_x + SHIP_W // 2, ship_y + SHIP_H)]
    pygame.draw.polygon(screen, SHIP_COLOR, points)
    pygame.draw.circle(screen, WHITE, (ship_x, ship_y + SHIP_H - 8), 4)
    pygame.display.flip()
    clock.tick(60)

🔍 Это ты уже знаешь по «Арканоиду»

Корабль ездит как ракетка: пока держишь стрелку (pygame.key.get_pressed()), он сдвигается и не выезжает за края (max(..., min(...))). Новое — мелочи:

Треугольник вместо прямоугольника

pygame.draw.polygon рисует фигуру по списку точек. Мы задаём три угла: нос сверху и две нижние «лапы». Поэтому ship_x у нас — это центр корабля (а не левый край, как была paddle_x).

нос (ship_x, ship_y) низ-лево низ-право
💡 Дальше — самое интересное В следующем уроке корабль начнёт стрелять, и пуль будет много сразу. Ради этого приёма — списка объектов — мы и делаем «Космос».
🎮 Попробуй сам 1. Сделай корабль больше: SHIP_W, SHIP_H = 60, 40.
2. Поменяй скорость SHIP_SPEED.
3. Поменяй цвет корабля SHIP_COLOR на свой.
← К курсуВсе уроки Космоса