Движок для создания визуальных новелл на Python с использованием Pygame.
- Скачайте файл
NovelEngine.exe - Запустите файл двойным щелчком мыши
- Наслаждайтесь игрой!
- Установите Python 3.8 или выше
- Установите зависимости:
pip install -r requirements.txt - Запустите игру:
python main.py
- Левая кнопка мыши - переход к следующей сцене, взаимодействие с кнопками или выбор варианта
- Кнопки "Назад" и "Вперед" - навигация по сценам
- F11 или Alt+Enter - переключение полноэкранного режима
- ESC - выход из игры (с подтверждением)
- Отображение фоновых изображений
- Отображение персонажей с возможностью позиционирования
- Текстовые диалоги с именами персонажей
- Навигация по сценам
- Система выбора и ветвления сюжета
- Полноэкранный режим
- Масштабирование под любой размер экрана
- Обработка ошибок при загрузке ресурсов
main.py- точка входа в приложениеengine/- основные компоненты движкаgame.py- основной класс игрыscene.py- класс сценыconfig.py- настройки и константы
story/- сюжет игрыstory.py- определение сцен и сюжета
Assets/- ресурсы игрыCharacters/- изображения персонажейBackgrounds/- фоновые изображения
Для создания сцены с выбором используйте следующий код:
Scene("Текст сцены",
character="персонаж",
background="фон",
scene_id="уникальный_id",
choices=[
{"text": "Вариант 1", "next_scene": "id_следующей_сцены_1"},
{"text": "Вариант 2", "next_scene": "id_следующей_сцены_2"},
{"text": "Вариант 3", "next_scene": "id_следующей_сцены_3"}
])Каждой сцене, к которой будет осуществляться переход, необходимо задать уникальный scene_id.
Для создания прямого перехода между сценами используйте параметр next_scene_id:
Scene("Текст сцены",
character="персонаж",
background="фон",
scene_id="уникальный_id",
next_scene_id="id_следующей_сцены")При нажатии на текст или кнопку "Вперед" игра автоматически перейдет к сцене с указанным scene_id. Это позволяет создавать нелинейные сюжеты с произвольными переходами между сценами.
Движок поддерживает систему переменных и условий, которая позволяет создавать более сложные сюжеты с ветвлением, зависящим от действий игрока.
# Установка переменной
game.set_variable("visited_lab", True)
# Получение значения переменной
value = game.get_variable("visited_lab", False) # False - значение по умолчаниюВы можете задать действия, которые будут выполнены при входе в сцену:
Scene("Текст сцены",
scene_id="lab_scene",
on_enter=[
{"action": "set_variable", "variable": "visited_lab", "value": True}
])Вы можете создавать варианты выбора, которые будут отображаться только при выполнении определенных условий:
Scene("Текст сцены",
scene_id="choice_scene",
choices=[
{"text": "Вариант 1", "next_scene": "scene1"},
{"text": "Вариант 2", "next_scene": "scene2"},
{"text": "Секретный вариант", "next_scene": "secret_scene", "condition": {
"variable": "found_key",
"equals": True
}}
])Вы можете создавать сложные условия с использованием операторов "and" и "or":
# Условие "И" - все подусловия должны быть истинными
"condition": {
"variable": "visited_lab",
"equals": True,
"and": [
{"variable": "visited_library", "equals": True},
{"variable": "visited_garden", "equals": True}
]
}
# Условие "ИЛИ" - хотя бы одно подусловие должно быть истинным
"condition": {
"variable": "has_key",
"equals": True,
"or": [
{"variable": "has_lockpick", "equals": True},
{"variable": "door_is_open", "equals": True}
]
}Для сборки проекта в исполняемый файл:
- Установите PyInstaller:
pip install pyinstaller - Запустите скрипт сборки:
python build_exe.py - После завершения сборки в корневой директории появится файл
NovelEngine.exe
Этот проект распространяется под лицензией MIT.
- M0r19un(with Cursor AI)