LeCodesdocs

Глобалы хоста

Глобалы, предоставляемые самим рантаймом хоста (веб-вьювер, iOS, Android, десктоп), а не внедряемые SDK. Доступны в каждом проекте, в каждом движке.

Кадровый цикл

TypeScript
setLoop(fn: (dt: number) => void): number
clearLoop(id: number): void

Срабатывает каждый отрисованный кадр. dtсекунды с прошлого кадра (~0.016 при 60 fps) — для движения, независимого от кадра, масштабируй на него: position += speed * dt.

TypeScript
const id = setLoop(dt => {
  if (Input.key('ArrowRight')) player.x += 120 * dt
})
Note

цикл работает, пока его не остановят. Всё запущенное в onOpen экрана должно останавливаться в его onClose, иначе утечёт при навигации.

Таймеры

TypeScript
setTimeout(fn, ms?): number
setInterval(fn, ms?): number
clearTimeout(id): void
clearInterval(id): void

Та же семантика, что в вебе, миллисекунды. (Для контраста: dt у setLoop — секунды.)

Консоль

TypeScript
console.log(...data) / console.warn(...) / console.info(...) / console.error(...)

Единственные существующие методы консоли — нет console.table, console.time и т. п.

asset() — ресурсы проекта

TypeScript
asset(path: string): string      // макрос времени компиляции — path должен быть строковым ЛИТЕРАЛОМ

Переписывается бандлером в импорт ресурса для этого файла; возвращаемая строка — URL собранного ассета. Эквивалентно импорту файла:

TypeScript
import hero from './hero.png'            // то же самое
const tex = await Texture2D.load(asset('./hero.png'))
Note

поскольку это макрос, asset(someVariable) — ошибка сборки. Удалённым https://… URL он не нужен — передавай их обычными строками.

Константы углов

TypeScript
DEG2RAD   // π / 180 — подставляется при компиляции
RAD2DEG   // 180 / π

Используй их на границе радианы↔градусы (см. Соглашения).

Style<T> (тип только для редактора)

TypeScript
const preset: Style<UIButton> = { bgColor: '#333', borderRadius: 12 }

Разрешается в частичный объект стиля, который принимает el.style(...) — для типизации переиспользуемых пресетов стиля. Чистый тип: в рантайме не существует.