- Python 71.1%
- GDScript 28.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| addons/godot-git-plugin | ||
| assets/sprites | ||
| resources | ||
| scenes | ||
| scripts | ||
| tools | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| icon.svg | ||
| icon.svg.import | ||
| project.godot | ||
| README.md | ||
Ant Inc
2D JRPG с видом сверху на Godot 4.7.
Запуск
Откройте project.godot в Godot 4.7 и нажмите F5.
Главной сценой сейчас назначена временная тестовая комната scenes/dev/dev_room.tscn.
Управление
| Действие | Клавиши |
|---|---|
| Движение (8 направлений) | WASD, стрелки |
| Взаимодействие | E, Space, Enter |
Игрок
scenes/player/player.tscn + scripts/player.gd:
CharacterBody2Dс движением в 8 направлений и ускорением.- Анимации
idle_*/walk_*для четырёх направлений (resources/player_sprite_frames.tres). Camera2Dс зумом 3× и ограничениями, которые задаёт тестовая комната.InteractionArea—Area2Dперед игроком. Объекты взаимодействия должны быть в группеinteractableи могут иметь методinteract(player). Нажатие E вызывает этот метод и сигналinteracted(target).- Слои физики: игрок — слой 2, мир — слой 1. Игрок сканирует слой 1, объекты мира — слой 2.
NPC и диалоги
Старейшина стоит в тестовой комнате рядом со стартовой позицией игрока. Подойдите к нему и нажмите E (или Space / Enter) — откроется диалоговое окно.
scenes/npc/npc.tscn+scripts/npc.gd— статичный NPC (StaticBody2D). Имя говорящего (speaker_name) и реплики (lines) задаются в инспекторе. NPC сам добавляется в группуinteractable, а методinteract(player)открывает диалог.scenes/ui/dialogue_box.tscn+scripts/dialogue_box.gd— окно диалога, подключённое автозагрузкойDialogueвproject.godot.- Пока окно открыто, дерево сцены на паузе, поэтому игрок не двигается. Повторное нажатие E показывает следующую реплику, после последней — закрывает окно и снимает паузу.
Чтобы добавить нового NPC, перетащите scenes/npc/npc.tscn на уровень,
задайте ему имя и реплики в инспекторе. Из кода диалог можно открыть так:
Dialogue.show_dialogue("Имя", ["Первая реплика", "Вторая реплика"])
Структура
assets/sprites/ плейсхолдерная графика (персонаж, NPC, трава, дерево, камень)
resources/ SpriteFrames игрока
scenes/player/ сцена игрока
scenes/npc/ сцена статичного NPC
scenes/ui/ окно диалога (автозагрузка Dialogue)
scenes/dev/ временная комната для проверки
scripts/ player.gd, npc.gd, dialogue_box.gd, dev_room.gd
tools/ генератор плейсхолдерной графики
Плейсхолдерная графика
Спрайт-лист персонажа — сетка 4×4 из кадров 32×32 (строки: вниз, влево, вправо, вверх; столбцы: idle, шаг A, idle, шаг B). Замените assets/sprites/player/player_sheet.png своей графикой с такой же сеткой.
Спрайт старейшины — один кадр 32×32: assets/sprites/npc/elder.png.
Перегенерировать плейсхолдеры:
python tools/generate_placeholder_art.py
Тестовую комнату и её скрипт можно удалить, когда появится настоящий уровень; не забудьте сменить run/main_scene в project.godot.