mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 08:57:13 +08:00
(client) feat:实现技能树界面,实现地图生成器,实现维度指定,实现规则瓦片定义,实现逃跑逻辑,实现消息定义,实现武器动画,实现受击动画 fix: 修复单攻击子弹击中多个目标,修复人物属性计算错误 (#56)
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/56
This commit is contained in:
@@ -11,7 +11,10 @@ namespace Utils
|
||||
Initialize();
|
||||
}
|
||||
|
||||
// 初始化混淆表
|
||||
/// <summary>
|
||||
/// 初始化混淆表。
|
||||
/// </summary>
|
||||
/// <param name="seed">随机种子。</param>
|
||||
private void Initialize(int seed = 0)
|
||||
{
|
||||
var permutation = new int[256];
|
||||
@@ -36,28 +39,48 @@ namespace Utils
|
||||
}
|
||||
}
|
||||
|
||||
// 重新指定种子
|
||||
/// <summary>
|
||||
/// 重新指定种子并初始化混淆表。
|
||||
/// </summary>
|
||||
/// <param name="seed">随机种子。</param>
|
||||
public void Reinitialize(int seed)
|
||||
{
|
||||
Initialize(seed);
|
||||
}
|
||||
|
||||
// 平滑函数 (6t^5 - 15t^4 + 10t^3)
|
||||
/// <summary>
|
||||
/// Perlin噪声平滑函数 (6t^5 - 15t^4 + 10t^3)。
|
||||
/// </summary>
|
||||
/// <param name="t">输入值。</param>
|
||||
/// <returns>平滑后的值。</returns>
|
||||
private static double Fade(double t)
|
||||
{
|
||||
return t * t * t * (t * (t * 6 - 15) + 10);
|
||||
}
|
||||
|
||||
// 线性插值
|
||||
/// <summary>
|
||||
/// 线性插值。
|
||||
/// </summary>
|
||||
/// <param name="t">插值因子 (0-1)。</param>
|
||||
/// <param name="a">起始值。</param>
|
||||
/// <param name="b">结束值。</param>
|
||||
/// <returns>插值结果。</returns>
|
||||
private static double Lerp(double t, double a, double b)
|
||||
{
|
||||
return a + t * (b - a);
|
||||
}
|
||||
|
||||
// 计算梯度向量和距离向量的点积
|
||||
/// <summary>
|
||||
/// 计算梯度向量和距离向量的点积。
|
||||
/// </summary>
|
||||
/// <param name="hash">哈希值,用于决定梯度向量方向。</param>
|
||||
/// <param name="x">X轴距离。</param>
|
||||
/// <param name="y">Y轴距离。</param>
|
||||
/// <param name="z">Z轴距离。</param>
|
||||
/// <returns>点积结果。</returns>
|
||||
private static double Grad(int hash, double x, double y, double z)
|
||||
{
|
||||
return (hash & 0xF) switch // 取hash值的最后4位
|
||||
return (hash & 0xF) switch // 取哈希值的最后4位决定梯度方向
|
||||
{
|
||||
0x0 => x + y,
|
||||
0x1 => -x + y,
|
||||
@@ -80,9 +103,13 @@ namespace Utils
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 为给定的(x, y, z)坐标生成3D Perlin噪声。
|
||||
/// 输出值通常在-1到1之间。
|
||||
/// 为给定的(x, y, z)坐标生成3D Perlin噪声。
|
||||
/// 输出值通常在-1到1之间。
|
||||
/// </summary>
|
||||
/// <param name="x">X坐标。</param>
|
||||
/// <param name="y">Y坐标,默认为0。</param>
|
||||
/// <param name="z">Z坐标,默认为0。</param>
|
||||
/// <returns>Perlin噪声值。</returns>
|
||||
public double Noise(double x, double y = 0, double z = 0)
|
||||
{
|
||||
var X = (int)Math.Floor(x) & 255;
|
||||
@@ -126,4 +153,4 @@ namespace Utils
|
||||
return Lerp(w, y0, y1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user