Библиотека 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, несмотря на активную стадию развития и недостаток подробной документации. Наличие примеров и утилиты для создания ресурсов упрощает освоение и позволяет быстро создавать собственные проекты.