Maula Game Engine - это легковесный игровой движок, написанный на языке программирования Maula, который находится в стадии бета-тестирования. Движок предоставляет базовые возможности для создания 2D-игр с поддержкой графики, звука и управления ресурсами.
- Убедитесь, что у вас установлен интерпретатор языка Maula (версия бета от марта 2025 или новее).
- Склонируйте репозиторий:
git clone https://github.com/Max-Dil/maGula
- Поместите файлы движка в ваш проект.
- init.maula - точка входа движка, инициализация основных модулей
- graphics.maula - модуль для работы с 2D-графикой
- resources.maula - модуль для загрузки ресурсов (изображения, аудио)
- audio.maula - модуль для работы со звуком
- audio.js - вспомогательный JavaScript-файл для работы с Web Audio API
- image.js - вспомогательный JavaScript-файл для загрузки изображений
Core Модуль core управляет игровым циклом:
- core.run(updateFps, drawFps) - запускает игровой цикл с заданной частотой обновления логики и рисования
- core.update(dt) - функция обновления логики (нужно определить вручную)
- core.draw() - функция отрисовки (нужно определить вручную)
Graphics Модуль graphics предоставляет функции для 2D-рисования:
- graphics.clear() - очищает канвас
- graphics.color(color) - задает цвет заливки
- graphics.rect(x, y, width, height) - рисует прямоугольник
- graphics.circle(x, y, radius, fill) - рисует круг (с заливкой или без)
- graphics.line(x1, y1, x2, y2) - рисует линию
- graphics.lineWidth(width) - задает толщину линии
- graphics.strokeColor(color) - задает цвет обводки
- graphics.font(fontString) - задает шрифт для текста
- graphics.text(text, x, y) - рисует текст
- graphics.drawImage(image, x, y, width, height) - рисует изображение
- graphics.rotate(angle) - поворачивает канвас
- graphics.translate(x, y) - смещает канвас
- graphics.save() - сохраняет состояние контекста
- graphics.restore() - восстанавливает состояние контекста
Resources Модуль resources отвечает за загрузку ресурсов:
- resources.loadImage(path) - загружает изображение (возвращает Promise)
- resources.loadAudio(url) - загружает аудиофайл (возвращает Promise)
Audio Модуль audio управляет звуком:
- audio.playSound(buffer) - воспроизводит загруженный аудиобуфер