Pyxel: Создание ретро-игр на Python

Библиотека Pyxel позволяет создавать ретро-игры на Python. Рассмотрим основные принципы работы с Pyxel, создадим простую игру и изучим возможности создания графических элементов и управления объектами.

Установка Pyxel

Для начала работы установите библиотеку Pyxel. Предполагается наличие виртуального окружения. В терминале выполните команду:

pip install pyxel

После успешной установки импортируйте библиотеку в проект:

import pyxel

Pyxel подходит для создания игр в ретро-стиле с 16-битной или пиксельной графикой, преимущественно платформеров. Она предназначена для небольших проектов, запускаемых на ПК или в браузере, и не подходит для масштабных разработок.

Базовая игра

Создадим класс Game:

class Game:
    def __init__(self):
        pyxel.init(600, 500, title="MyGame")
        pyxel.run(self.update, self.draw)

    def update(self):
        pass

    def draw(self):
        pass

if __name__ == "__main__":
    Game()

Конструктор инициализирует окно игры размером 600×500 с заголовком «MyGame». Методы update (обработка логики игры) и draw (отрисовка графики) регистрируются с помощью pyxel.run.

Добавление мыши и обработка событий

Для отображения мыши используйте:

pyxel.mouse(True)

Добавим обработку нажатия клавиши ‘S’ для выхода:

    def update(self):
        if pyxel.btnp(pyxel.KEY_S):
            pyxel.quit()

Перед отрисовкой каждого кадра очищайте экран:

    def draw(self):
        pyxel.cls()
        pyxel.text(120, 100, "Hello Pixel", 7)

Текст «Hello Pixel» выводится с мигающим эффектом, достигаемым использованием pyxel.frame_count % 15.

Рисование фигур

Pyxel позволяет рисовать геометрические фигуры. Например, квадрат:

pyxel.rect(x, y, width, height, 14)

и круг:

pyxel.circ(x, y, radius, 11)

где x, y – координаты; width, height – размеры квадрата; radius – радиус круга; последнее число – идентификатор цвета.

Управление объектом

Добавим управление квадратом клавишами W, S, A, D:

class Game:
    def __init__(self):
        # ... (прежний код) ...
        self.rect_x = 0
        self.rect_y = 0

    def update(self):
        if pyxel.btn(pyxel.KEY_W):
            self.rect_y -= 1
        if pyxel.btn(pyxel.KEY_S):
            self.rect_y += 1
        if pyxel.btn(pyxel.KEY_A):
            self.rect_x -= 1
        if pyxel.btn(pyxel.KEY_D):
            self.rect_x += 1
        # ... (прежний код) ...

    def draw(self):
        pyxel.cls()
        pyxel.rect(self.rect_x, self.rect_y, 10, 10, 14)
        # ... (прежний код) ...

rect_x и rect_y хранят координаты квадрата, изменяемые в зависимости от нажатых клавиш. В draw квадрат рисуется в текущих координатах.

Ресурсы и примеры

Pyxel включает примеры игр и утилиту pyxel edit для создания пиксельной графики и звуков. Примеры запускаются из директории examples командой python run <имя_файла>. Утилита pyxel edit вызывается командой pyxel edit.

Pyxel – удобная библиотека для создания ретро-игр на Python, несмотря на активную стадию развития и недостаток подробной документации. Наличие примеров и утилиты для создания ресурсов упрощает освоение и позволяет быстро создавать собственные проекты.

Что будем искать? Например,программа