ci / release (push) Successful in 5m5s
ci-platforms / build (amd64, windows, windows-2022) (push) Skipped
ci-platforms / build (arm64, darwin, macos-15) (push) Skipped
ci-platforms / build (amd64, darwin, macos-15-intel) (push) Skipped
ci / checks (push) Successful in 4m41s
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 7m14s
The remaining editor strings and undo step names; component, field, enum, setting, diagnostic and Script API texts under schema.*, enum.*, setting.*, diag.* and api.*; the launcher, the in-game Settings View with a Language setting, the CLI and aego schema show --lang. Every documentation page has a .ru.md translation; the site has a full Russian tree with hreflang, a language switch and ru/llms.txt; aego docs check --lang ru. New doc.tutorial and doc.recipe icons. Fix: an animator restored by a rewind prepares its controller before the replayed step.
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
---
|
|
id: language/standard-library
|
|
title: Стандартная библиотека
|
|
---
|
|
# Стандартная библиотека
|
|
|
|
Стандартная библиотека — это набор пакетов `aego/…`, которые может импортировать любой скрипт. У каждого пакета есть своя страница в справочнике Script API со всеми функциями; здесь сказано, для чего нужен каждый из них.
|
|
|
|
| Пакет | Для чего |
|
|
|---|---|
|
|
| [`aego/math`](ref:aego/math) | числа, векторы и повороты |
|
|
| [`aego/log`](ref:aego/log) | сообщения в «Консоли» |
|
|
| [`aego/rand`](ref:aego/rand) | случайные числа из зерна игры |
|
|
| [`aego/time`](ref:aego/time) | время кадра, фиксированный шаг и прошедшее время |
|
|
| [`aego/input`](ref:aego/input) | действия, контексты и клавиши напрямую; см. [Ввод](ref:input) |
|
|
| [`aego/settings`](ref:aego/settings) | настройки игрока и проекта; см. [Настройки](ref:settings) |
|
|
| [`aego/scene`](ref:aego/scene) | поиск, создание и удаление узлов |
|
|
| [`aego/testing`](ref:aego/testing) | проверки в тестах скриптов |
|
|
|
|
Модули движка добавляют свои пакеты, например `aego/physics` и `aego/audio`. Они перечислены в том же справочнике.
|
|
|
|
## Что стоит знать
|
|
|
|
- Перегрузки нет. У вариантов для Vec3 суффикс `3` (`Dot3`), у вариантов для int — суффикс `Int` (`ClampInt`).
|
|
- Собирайте сообщения журнала через `+` и `string(x)`.
|
|
- `aego/rand` берёт числа из генератора мира с зерном, поэтому повтор с тем же зерном даёт те же числа.
|
|
- Узлы, созданные через `scene.Instantiate`, появляются в конце фазы. Их скрипты получают `Ready` до следующего `Update`.
|
|
- `aego/testing` доступен только под `aego test`. Проваленная проверка останавливает тест и сообщает файл и строку.
|
|
|
|
Запустите:
|
|
|
|
```aes run
|
|
package demo
|
|
|
|
import (
|
|
"aego/log"
|
|
"aego/math"
|
|
"aego/rand"
|
|
"aego/scene"
|
|
"aego/time"
|
|
)
|
|
|
|
script Wander {
|
|
@export var Speed float = 2
|
|
|
|
var dir Vec2
|
|
|
|
func Ready() {
|
|
dir = math.Normalize(Vec2{rand.Range(-1, 1), rand.Range(-1, 1)})
|
|
log.Info("found myself: " + string(scene.Find("Wander") == node))
|
|
}
|
|
|
|
func Update(dt float) {
|
|
node.SetPosition(node.Position() + dir * Speed * dt)
|
|
if time.Frame() % 40 == 0 {
|
|
p := node.Position()
|
|
log.Info("t=" + string(time.Elapsed()) + " s, " + string(math.Length(p)) + " units from the start")
|
|
}
|
|
}
|
|
}
|
|
```
|