Добавляем космонавта
7 минут · 08:00–15:00 в часовом практикуме
Результат задачи: Разместить персонажа на фоне и управлять его положением через координаты.
Рабочий файл
Открой game.py в распакованном проекте. Продолжаем файл предыдущей задачи. Python и Arcade уже должны быть установлены. После изменения сохрани и запусти Run → Run Module / F5. Старое игровое окно закрой.
Скачать учебную папку со всеми картинками ↓Что используем в этом блоке
- Координаты
- x растёт вправо, y в Arcade растёт вверх. Начало — левый нижний угол.
- XYWH
- Прямоугольник по центру x, y и размерам width, height.
Подзадача 1 · Загрузи PNG и задай позицию
Добавь x и y после настроек. После загрузки фона добавь текстуру hero.
x = 210y = 235hero = arcade.load_texture("assets/astronaut.png")Как работает блок
- x и y задают центр рисунка; hero хранит текстуру персонажа.
- Прозрачные области PNG позволяют показать фон вокруг космонавта.
Подзадача 2 · Сделай функцию рисования объекта
Перед draw опиши draw_image. Её же позже используем для звезды и метеора.
def draw_image(texture, x, y, size): arcade.draw_texture_rect(texture, arcade.XYWH(x, y, size, size))Как работает блок
- texture — изображение; x и y — его центр; size — размер квадратной области.
- Здесь обычная функция Python и прямой вызов Arcade. Все правила остаются в game.py.
Подзадача 3 · Покажи героя поверх фона
Внутри draw после строки с фоном добавь вызов. Сохрани, закрой старое окно и запусти файл снова.
draw_image(hero, x, y, 132)Как работает блок
- Внутри draw у вызова четыре пробела отступа.
- Порядок рисования важен: фон первым, персонаж после него.

Самостоятельная модификация
- Передвинь героя выше и правее, меняя только начальные координаты. Затем верни x = 210, y = 235.
Критерий готовности
- Персонаж виден на фоне и меняет положение после изменения x или y.
Полный game.py после задачи 2
Сверь расположение блоков или скачай файл в корень распакованного проекта рядом с assets. Это полная рабочая версия на данном этапе.
Скачать game.py задачи 2 ↓Посмотреть весь файл
import arcadeWIDTH = 1280HEIGHT = 800x = 210y = 235window = arcade.Window(WIDTH, HEIGHT, "Звезда и Метеор")background = arcade.load_texture("assets/background.png")hero = arcade.load_texture("assets/astronaut.png")def draw_image(texture, x, y, size): arcade.draw_texture_rect(texture, arcade.XYWH(x, y, size, size))def draw(): window.clear() arcade.draw_texture_rect(background, arcade.LBWH(0, 0, WIDTH, HEIGHT)) draw_image(hero, x, y, 132)window.on_draw = drawarcade.run()Преподавателю: объяснение блока и запись видео
Начните так: «Картинка героя уже готова. Наша задача — загрузить её и указать, где рисовать.»
Спросите: Что изменится при увеличении y на 100?
Ответ: Персонаж поднимется на 100 пикселей; горизонтальная позиция останется прежней.
Если не получается: Если персонаж исчез, проверьте вызов после фона, имя файла и попадание координат в окно.
Открыть сценарий блока →