original ver 25/06/01

This commit is contained in:
GardeniaRabbit
2025-06-02 00:48:08 +08:00
committed by FloatGaming
commit 89e03899f0
1065 changed files with 183622 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
using UnityEngine;
namespace EOUtils {
/// <summary>
/// 颜色(TODO:最好把这个移到别的文件中以避免过多对此文件的依赖)
/// </summary>
public enum Color
{
RED,
// TODO
};
}
public interface INote
{
/// <summary>
/// Note 的状态
/// </summary>
public State state {
get;
}
/// <summary>
/// Note 的颜色
/// </summary>
EOUtils.Color color {
get;
}
/// <summary>
/// Note 开始 activate 的时间
/// </summary>
float startTime {
get;
}
/// <summary>
/// Note 与判定线重叠的时间
/// </summary>
float hitTime {
get;
}
/// <summary>
/// Note 的分数
/// </summary>
int noteScore {
get;
}
/// <summary>
/// Note 的状态
/// </summary>
enum State {
/// <summary>
/// Note 未被初始化。
/// </summary>
UNINITIALIZED,
/// <summary>
/// Note 已被预加载且未出现在场景中
/// </summary>
PRELOADED,
/// <summary>
/// Note 正在场景中且没有被聚焦
/// </summary>
ALIVE,
/// <summary>
/// Note 被聚焦
/// </summary>
FOCUSED,
/// <summary>
/// Note 已经消亡
/// </summary>
DIED
};
/// <summary>
/// 激活 Note
/// </summary>
/// <exception cref="InvalidOperationException">如果 Note 当前状态不能被激活</exception>
void Activate();
/// <summary>
/// 聚焦 Note。
/// </summary>
/// <exception cref="InvalidOperationException">如果 Note 当前状态不可以被聚焦</exception>
void Focus();
/// <summary>
/// 杀死 Note。
/// </summary>
void Kill();
/// <summary>
/// 在 hit 输入时调用。如果
/// </summary>
/// <param name="time">输入 hit 时的游戏时间</param>
/// <param name="accuracy">输出精准度</param>
/// <returns>hit 是否对这个 hit 生效。如果 hit 没有生肖 accuracy 将会返回无效值</returns>
bool hitInput(float time, out float accuracy);
/// <summary>
/// 根据时间更新 Note 的位置。
/// </summary>
/// <param name="time">当前时间(单位:秒)</param>
/// <param name="startPos">生成时的位置</param>
/// <param name="hitPos">与判定线重合的位置</param>
void UpdateMovement(float time, Vector2 startPos, Vector2 hitPos);
}