Files
sanspie f22242e5aa
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
Stage 11g2–11g3: registry texts, CLI and the site in Russian (D348)
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.
2026-10-25 15:31:22 +03:00

4.5 KiB

id, title
id title
time Время

Время

Режим игры: пауза, шаг, масштаб времени и временная шкала под панелью «Игра»

У каждой запущенной игры свои часы. Пауза, шаги и масштаб времени меняют их скорость, а каждый вид кода читает подходящее ему время.

Время Что это
Реальное время по часам между кадрами, урезанное до maxFrameDelta (по умолчанию 0,1 с), чтобы зависший кадр или свёрнутое окно не дали огромного шага
Игровое реальное × масштаб времени; 0 на паузе. Его читают time.Delta() и time.Elapsed().
Фиксированное постоянный шаг, fixedHz (по умолчанию 60). Каждый полный шаг запускает FixedUpdate и физику. За кадр выполняется не больше maxFixedSteps (4) шагов; остальные отбрасываются, и профилировщик считает их отброшенными тиками.
Редактора собственное время редактора; оно не встаёт на паузу вместе с игрой

Каждый мир считает свои кадры и фиксированные шаги. time.Frame() и time.Tick() возвращают те же числа, что показывают профилировщик и «Монитор событий».

Пауза, шаг и масштаб

  • Пауза останавливает игровое и фиксированное время. Отрисовка, оверлеи и редактор продолжают работать.
  • Шаг на кадр выполняет один Update и те фиксированные шаги, что накопились для этого кадра: ноль или один.
  • Шаг на фиксированный тик выполняет ровно один фиксированный шаг (FixedUpdate, физику, события столкновений) без Update.
  • Масштаб времени от 0 до 8 задаёт, сколько игрового времени проходит за реальную секунду. Длина фиксированного шага не меняется, поэтому при 0,25 физика ведёт себя так же, как при 1, только медленнее.

Время на паузе не накапливается: после долгой паузы игра продолжается одним обычным кадром.

Настройки проекта

Блок engine в project.aego задаёт пределы. Отсутствующее поле сохраняет значение по умолчанию.

engine {
  fixedHz=60.0
  maxFrameDelta=0.1
  maxFixedSteps=4
}

Системы

Система на Go выбирает, что делать на паузе, полем Pause в своём SystemDesc: PauseNormal (останавливается), PauseAlways (работает каждый кадр) или PauseWhenPaused (работает только на паузе). Режим паузы действует на фазы fixed и update; ввод и отрисовка работают всегда.

Скрипты

@pause("always")
script PauseMenu {
  func Update(dt float) {
    if input.KeyPressed(input.KeyEscape) {
      time.SetPaused(!time.IsPaused())
    }
  }
}
  • @pause("normal") (по умолчанию): Update останавливается на паузе.
  • @pause("always"): Update выполняется каждый кадр, на паузе и без неё, а dt — реальное время. Используйте это для меню и HUD.
  • @pause("whenPaused"): Update выполняется только на паузе.

FixedUpdate всегда идёт по фиксированным шагам. yield wait(s) считает игровые секунды и стоит на паузе; yield waitUnscaled(s) считает реальные секунды и продолжает идти на паузе. frames(n) считает игровые кадры, fixed(n) — фиксированные шаги.