using UnityEngine;
namespace EOUtils {
///
/// 颜色(TODO:最好把这个移到别的文件中以避免过多对此文件的依赖)
///
public enum Color
{
RED,
// TODO
};
}
public interface INote
{
///
/// Note 的状态
///
public State state {
get;
}
///
/// Note 的颜色
///
EOUtils.Color color {
get;
}
///
/// Note 开始 activate 的时间
///
float startTime {
get;
}
///
/// Note 与判定线重叠的时间
///
float hitTime {
get;
}
///
/// Note 的分数
///
int noteScore {
get;
}
///
/// Note 的状态
///
enum State {
///
/// Note 未被初始化。
///
UNINITIALIZED,
///
/// Note 已被预加载且未出现在场景中
///
PRELOADED,
///
/// Note 正在场景中且没有被聚焦
///
ALIVE,
///
/// Note 被聚焦
///
FOCUSED,
///
/// Note 已经消亡
///
DIED
};
///
/// 激活 Note
///
/// 如果 Note 当前状态不能被激活
void Activate();
///
/// 聚焦 Note。
///
/// 如果 Note 当前状态不可以被聚焦
void Focus();
///
/// 杀死 Note。
///
void Kill();
///
/// 在 hit 输入时调用。如果
///
/// 输入 hit 时的游戏时间
/// 输出精准度
/// hit 是否对这个 hit 生效。如果 hit 没有生肖 accuracy 将会返回无效值
bool hitInput(float time, out float accuracy);
///
/// 根据时间更新 Note 的位置。
///
/// 当前时间(单位:秒)
/// 生成时的位置
/// 与判定线重合的位置
void UpdateMovement(float time, Vector2 startPos, Vector2 hitPos);
}