calculator随机、数学与更多

此页面汇集了一些“你会经常用到”的实用工具:RNG、格式化、时间,以及在大多数游戏中都会出现的一些核心子系统。

circle-info

如果你在找数组/切片,请参见 数组和集合.

随机数(RNG)

随机数使用显式 u64 种子。通过 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:

日志记录

日志记录遵循相同的格式规则:

时间

音效

circle-exclamation

经济系统快速入门(货币)

经济货币是 按每个玩家自动持久化.

经济系统 查看完整指南。

最后更新于