75 lines
6.4 KiB
Markdown
75 lines
6.4 KiB
Markdown
---
|
||
id: quickstart
|
||
summary: Создайте 2D-проект, подключите скрипт, сохраните работу и запустите экспортированную игру.
|
||
---
|
||
# Первый проект
|
||
|
||
Создайте проект со спрайтом, которым можно управлять, затем экспортируйте папку для запуска вне редактора. Нужна настольная сборка Aego: встроенная браузерная песочница не заменяет редактор проекта. Если Aego ещё не установлен, начните с [установки](ref:install).
|
||
|
||
## 1. Создайте проект
|
||
|
||
Откройте Aego. Нажмите **Новый проект**, выберите **2D**, назовите проект `hello`, выберите, где он будет лежать, и нажмите **Создать**. Редактор откроет главную сцену проекта: камеру и спрайт.
|
||
|
||
## 2. Осмотритесь
|
||
|
||
Слева панель «Иерархия» показывает узлы сцены. Справа «Инспектор» показывает компоненты выбранного узла и их поля. В середине панель «Сцена»: перетаскивайте, чтобы сдвинуть вид, крутите колесо для масштаба, щёлкните узел, чтобы выбрать его. Нажмите **Играть** (или Ctrl+P): панель «Игра» покажет то, что видит игрок. Нажмите **Остановить**, чтобы вернуться.
|
||
|
||
## 3. Заставьте его двигаться
|
||
|
||
В «Ассетах» щёлкните правой кнопкой папку `scripts/game` и выберите **Создать → Скрипт…**. Назовите его `Spinner` и нажмите **Создать**. Откроется редактор скриптов с пустым скриптом; добавьте в него `Update`:
|
||
|
||
```aes
|
||
package game
|
||
|
||
script Spinner {
|
||
func Update(dt float) {
|
||
node.SetRotation(node.Rotation() + dt)
|
||
}
|
||
}
|
||
```
|
||
|
||
Сохраните (Ctrl+S). Выберите спрайт, нажмите **Добавить компонент** в «Инспекторе», наберите `spinner` и выберите **Spinner**. Нажмите «Играть»: спрайт вращается. Замените `dt` на `dt * 3`, пока игра идёт, и сохраните — он закрутится быстрее без перезапуска. Это горячая перезагрузка, она работает для любого скрипта.
|
||
|
||
## 4. Добавьте управление
|
||
|
||
Замените скрипт на версию с вводом:
|
||
|
||
```aes
|
||
package game
|
||
|
||
import "aego/input"
|
||
|
||
script Spinner {
|
||
func Update(dt float) {
|
||
p := node.Position()
|
||
p.X += input.Axis("Move") * 5 * dt
|
||
node.SetPosition(p)
|
||
}
|
||
}
|
||
```
|
||
|
||
`Move` — действие ввода: по умолчанию стрелки и A/D, а если подключён геймпад — его стик. Действия задаются в **Настройках проекта → Ввод**; добавляйте там свои.
|
||
|
||
## Сохраните работу
|
||
|
||
Сохраните скрипт через Ctrl+S, затем переведите фокус в документ сцены и сохраните его отдельно. Скрипты находятся в `scripts/`, сцены в `scenes/`, импортируемые исходники в `assets/`. Храните исходники вместе с их `.meta`: метаданные содержат постоянные идентификаторы ресурсов, на которые ссылается сцена. Остановка Play не превращает временное состояние игры в сохранённые правки сцены. Экспорт собирает сохранённый проект, а не заменяет сохранение документов.
|
||
|
||
Проверка: остановите игру, закройте и откройте сцену, затем снова нажмите «Играть». На спрайте должен остаться Spinner, а действие Move должно его перемещать.
|
||
|
||
## 5. Перемотайте игру
|
||
|
||
Во время игры нажмите F6, чтобы поставить паузу, и потяните таймлайн внизу панели «Игра». Игра пойдёт назад к выбранному кадру и снова вперёд — каждый кадр ровно так, как он был. F7 делает шаг на один фиксированный тик.
|
||
|
||
## 6. Экспортируйте проект
|
||
|
||
**Файл → Экспорт…** открывает панель «Экспорт». Выберите платформу **Веб**, папку вывода и нажмите **Экспорт**. Нажмите **Запустить**: панель раздаст папку через локальный сервер, и игра откроется в браузере. Для нативной сборки выберите **Linux**, **Windows** или **macOS**; для системы, отличной от вашей, нужны Go и исходники движка, см. [Установка Aego](ref:install).
|
||
|
||
Копируйте всю папку веб-сборки, а не только HTML или WASM. Раздавайте её через HTTP: открытие `index.html` по `file:` не соответствует запуску опубликованной игры. Проверьте управление в экспортированной игре вне редактора. В [справке CLI](ref:cli) перечислены `--target web` и проверки сборки.
|
||
|
||
## Что дальше
|
||
|
||
- [Платформер с нуля](ref:platformer) — персонаж, камера, яма, монеты и враг, шаг за шагом.
|
||
- [Руководство по редактору](ref:editor) — все панели и сочетания клавиш.
|
||
- [Aego Script](ref:language) — язык за одно чтение.
|
||
- [Работа с агентами](ref:agents) — пусть ИИ-агент собирает и проверяет сцены вместе с вами.
|