Глава 1 · Собираем сцену

Окно и космический фон

8 минут · 00:00–08:00 в часовом практикуме

Результат задачи: Открыть окно Arcade 1280 × 800 и нарисовать фон из PNG.

Рабочий файл

Открой game.py в распакованном проекте. Сразу создаём окно и рисуем фон. Python и Arcade уже должны быть установлены. После изменения сохрани и запусти Run → Run Module / F5. Старое игровое окно закрой.

Скачать учебную папку со всеми картинками ↓

Что используем в этом блоке

Текстура
Загруженное изображение, которое Arcade может нарисовать.
Обработчик
Функция, которую окно вызывает при событии: рисовании, обновлении или вводе.

Подзадача 1 · Создай окно

Открой game.py в распакованной мастерской. Вставь этот стартовый блок. Python и Arcade должны быть установлены до начала занятия.

Python
import arcadeWIDTH = 1280HEIGHT = 800window = arcade.Window(WIDTH, HEIGHT, "Звезда и Метеор")

Как работает блок

  1. WIDTH и HEIGHT задают размеры в пикселях. Заглавные имена обозначают настройки по соглашению.
  2. arcade.Window создаёт окно. Переменная window позволяет подключить к нему функции.

Подзадача 2 · Загрузи фон

После создания окна загрузи background.png. Папка assets должна находиться рядом с game.py; запускаем из этой папки проекта.

Python
background = arcade.load_texture("assets/background.png")

Как работает блок

  1. load_texture читает PNG. Эту операцию выполняем один раз, до начала игры.

Подзадача 3 · Нарисуй кадр и запусти

Добавь функцию draw ниже загрузки. Подключения и arcade.run() всегда оставляй внизу файла.

Python
def draw():    window.clear()    arcade.draw_texture_rect(background, arcade.LBWH(0, 0, WIDTH, HEIGHT))window.on_draw = drawarcade.run()

Как работает блок

  1. clear очищает предыдущий кадр; следующий вызов рисует фон.
  2. LBWH описывает прямоугольник: левый край, нижний край, ширина, высота. Фон занимает всё окно.
  3. window.on_draw = draw передаёт функцию окну без немедленного вызова. Цикл обновлений запускает arcade.run().
Рабочий результат задачи 1: окно и космический фон.
Рабочий результат задачи 1: окно и космический фон. Нажми на кадр, чтобы увеличить.

Самостоятельная модификация

  1. Измени заголовок окна и проверь, что он обновился после перезапуска.

Критерий готовности

  • В отдельном окне виден фон; в Shell нет ошибки загрузки файла.

Полный game.py после задачи 1

Сверь расположение блоков или скачай файл в корень распакованного проекта рядом с assets. Это полная рабочая версия на данном этапе.

Скачать game.py задачи 1 ↓
Посмотреть весь файл
Python
import arcadeWIDTH = 1280HEIGHT = 800window = arcade.Window(WIDTH, HEIGHT, "Звезда и Метеор")background = arcade.load_texture("assets/background.png")def draw():    window.clear()    arcade.draw_texture_rect(background, arcade.LBWH(0, 0, WIDTH, HEIGHT))window.on_draw = drawarcade.run()
Преподавателю: объяснение блока и запись видео

Начните так: «Начинаем с игрового окна. Сегодня собираем одну игру по шести задачам; после каждого блока сразу проверяем результат.»

Спросите: Почему картинку загружаем один раз, а рисуем много раз?

Ответ: Файл достаточно прочитать при подготовке. Каждый новый кадр должен заново показать изображение.

Если не получается: FileNotFoundError: проверьте распаковку, assets/background.png и запуск из папки проекта. ModuleNotFoundError: открыт Python без Arcade.

Открыть сценарий блока →