calculatorСлучайные числа, математика и другое

Эта страница — набор полезных утилит, которыми вы будете пользоваться постоянно: ГПСЧ, форматирование, время и несколько основных подсистем, встречающихся в большинстве игр.

circle-info

Если вы ищете массивы/срезы, см. Массивы и коллекции.

Генерация случайных чисел (RNG)

Random использует явное u64 начальное значение (seed). Передавайте seed через ref чтобы он обновлялся.

rng: u64 = rng_seed_time();
// или детерминированно для сущности:
// rng: u64 = rng_seed(entity.id);

// Границы диапазона включительные
roll := rng_range_int(ref rng, 1, 10);
chance := rng_range_float(ref rng, 0, 1);
circle-exclamation

Математические функции

Распространённые математические вспомогательные функции:

angle_sin := sin(x);
angle_cos := cos(x);

result := pow(2.0, 3.0);   // 8.0
root := sqrt(16.0);        // 4.0

value := lerp(0.0, 100.0, 0.5);  // 50.0
clamped := clamp(value, 0.0, 10.0);

absolute := abs(-5);
minimum := min(5, 10);
maximum := max(5, 10);

len := length(v);
len_sq := length_squared(v);
normalized := normalize(v);

Форматирование строк

Используйте % заполнители с массивом аргументов:

Если вам нужен аргумент рядом со знаком процента (или рядом с другим аргументом), используйте %0 в качестве псевдонима для %:

Для округления десятичных чисел используйте format_float:

Логирование

Логирование следует тем же правилам форматирования:

Время

Звуковые эффекты (SFX)

circle-exclamation

Быстрый старт экономики (валюты)

Валюты в экономике это для каждого игрока и автоматически сохраняются.

См. Economy для полного руководства.

Последнее обновление