Содержание

Ulight Engine API Documentation

InputSystem

Класс для работы с вводом (клавиатура и мышь)

Keys(key)
Параметры: key (string) - клавиша из списка Keys
Возвращает: boolean - состояние клавиши (нажата/не нажата)

Проверяет состояние указанной клавиши. Возвращает true, если клавиша нажата, и false в противном случае.

// Пример: Проверка нажатия клавиши W для движения вперед
if (InputSystem.Keys(Keys.W)) {
    player.MoveForward(Time.DeltaTime());
}

// Пример: Комбинация клавиш Shift + Space
if (InputSystem.Keys(Keys.SPACE) && InputSystem.Keys(Keys.LSHIFT)) {
    player.Jump();
}
MousePos()
Возвращает: [number, number] - позиция мыши [x, y]

Возвращает текущую позицию курсора мыши в виде массива [x, y]. Координата Y инвертирована (увеличивается сверху вниз).

// Пример: Получение позиции мыши и отображение в тексте
let mousePos = InputSystem.MousePos();
VariableSystem.NewText(
    `Mouse: ${mousePos[0].toFixed(0)}, ${mousePos[1].toFixed(0)}`, 
    [0, 0, -5], 
    0.5, 
    [255, 255, 255], 
    0
);

// Пример: Использование позиции мыши для цели
function update() {
    let pos = InputSystem.MousePos();
    crosshair.SetPosition(pos[0], pos[1], 0);
}
MouseClick()
Возвращает: [boolean, boolean] - состояния кнопок [ЛКМ, ПКМ]

Возвращает состояния кнопок мыши: первый элемент массива - левая кнопка, второй - правая.

// Пример: Обработка кликов мыши
let clicks = InputSystem.MouseClick();

if (clicks[0]) { // ЛКМ
    player.Shoot();
}

if (clicks[1]) { // ПКМ
    player.Aim();
}

// Пример: Проверка двойного клика
let lastClickTime = 0;
if (clicks[0] && Time.Time() - lastClickTime < 0.3) {
    player.DoubleClickAction();
    lastClickTime = 0;
} else if (clicks[0]) {
    lastClickTime = Time.Time();
}

Engine

Основные функции движка

SetOS(os)
Параметры: os (string) - "Win" или "Web"

Устанавливает целевую операционную систему для разработки игры. Это влияет на оптимизацию и доступные функции.

WindowSize()
Возвращает: [number, number] - размер окна [ширина, высота]

Возвращает текущий размер игрового окна. Полезно для адаптивного интерфейса.

// Пример: Центрирование объекта
let size = Engine.WindowSize();
let centerX = size[0] / 2;
let centerY = size[1] / 2;
title.SetPosition(centerX, centerY, 0);

// Пример: Проверка соотношения сторон
function isWidescreen() {
    let size = Engine.WindowSize();
    return size[0] / size[1] > 1.7;
}
Quit()

Завершает работу приложения. В веб-версии может закрыть вкладку или показать сообщение.

// Пример: Выход из игры при нажатии ESC
function update() {
    if (InputSystem.Keys(Keys.ESCAPE)) {
        Engine.Quit();
    }
}

// Пример: Кнопка выхода в меню
exitButton.onClick = function() {
    Engine.Quit();
};

Camera

Управление камерой

SetCameraPos([x, y, z])
Параметры: [x, y, z] (number[]) - новая позиция

Устанавливает позицию камеры в 3D пространстве. Камера всегда смотрит вдоль оси Z.

// Пример: Установка камеры над игроком
Camera.SetCameraPos([player.x, player.y + 5, player.z + 3]);

// Пример: Камера для 2D платформера
Camera.SetCameraPos([player.x, player.y, 10]);
SetCameraRotate([x, y, z])
Параметры: [x, y, z] (number[]) - новые углы вращения

Устанавливает вращение камеры по осям X, Y, Z в градусах.

// Пример: Наклон камеры для эффекта "ранен"
function applyDamageEffect() {
    Camera.SetCameraRotate([0, 0, 15]);
    setTimeout(() => Camera.SetCameraRotate([0, 0, 0]), 500);
}

// Пример: Камера от первого лица
function updateFPS() {
    let mouseMove = InputSystem.MousePos();
    Camera.SetCameraRotate([-mouseMove[1]/10, mouseMove[0]/10, 0]);
}

Time

Работа со временем

Time()
Возвращает: number - текущее время в секундах

Возвращает время с момента запуска игры в секундах. Полезно для таймеров и анимаций.

// Пример: Таймер обратного отсчета
let startTime = Time.Time();
function update() {
    let elapsed = Time.Time() - startTime;
    if (elapsed > 60) {
        endGame();
    }
    timerText.text = `Time: ${60 - Math.floor(elapsed)}`;
}

// Пример: Мигание объекта
function update() {
    let visible = Math.sin(Time.Time() * 5) > 0;
    warningSign.visible = visible;
}
DeltaTime()
Возвращает: number - время между кадрами в секундах

Возвращает время, прошедшее между последним и текущим кадром (в секундах). Используйте для плавного движения независимо от FPS.

// Пример: Движение с постоянной скоростью
const SPEED = 5;
function update() {
    if (InputSystem.Keys(Keys.W)) {
        player.MoveForward(SPEED * Time.DeltaTime());
    }
}

// Пример: Плавное затухание
function update() {
    alpha -= Time.DeltaTime();
    if (alpha <= 0) {
        Destroy(this);
    }
}

Keys

Константы для клавиш клавиатуры

Содержит все поддерживаемые клавиши клавиатуры для использования с InputSystem.Keys().

// Полный список доступных клавиш:
Keys = {
    Q: "q", W: "w", E: "e", R: "r", T: "t", Y: "y", U: "u", I: "I", O: "o", P: "p",
    A: "a", S: "s", D: "d", F: "f", G: "g", H: "h", J: "j", K: "k", L: "l",
    Z: "z", X: "x", C: "c", V: "v", B: "b", N: "n", M: "m",
    F1: "f1", F2: "f2", F3: "f3", F4: "f4", F5: "f5", F6: "f6",
    F7: "f7", F8: "f8", F9: "f9", F10: "f10", F11: "f11", F12: "f12",
    SPACE: "space", ESCAPE: "esc", RCLICK: "rshift", LCLICK: "lshift",
    UP: "up", DOWN: "down", RIGHT: "right", LEFT: "left"
};