基础内容-3

Swirl Scale动画
四种Note代码建立
Note Judge Submodule构思中
This commit is contained in:
SoulliesOfficial
2025-01-27 22:11:24 -05:00
parent 8d887d5a7c
commit 70d06c6334
43 changed files with 2084 additions and 94 deletions

View File

@@ -11,6 +11,64 @@ namespace Ichni.RhythmGame
public abstract class EffectBase
{
public abstract void Execute();
public enum EffectState
{
Before = -1,
Middle = 0,
After = 1,
Error = 100
}
/// <summary>
/// 效果的持续时间如果为0则表示瞬间效果
/// </summary>
public float effectTime;
/// <summary>
/// 是否是瞬间效果
/// </summary>
public bool isInstantEffect => effectTime <= 0;
/// <summary>
/// 效果当前的状态
/// </summary>
public EffectState nowEffectState;
protected EffectBase()
{
this.effectTime = 0;
this.nowEffectState = EffectState.Before;
}
protected EffectBase(float effectTime)
{
this.effectTime = effectTime;
this.nowEffectState = EffectState.Before;
}
/// <summary>
/// 在效果的持续时间内,触发这个方法
/// </summary>
public virtual void Execute()
{
}
/// <summary>
/// 如果是非瞬间效果,在效果完成后,触发这个方法;
/// 如果是瞬间效果则此方法即为Execute。原有的Execute方法不被调用。
/// </summary>
public virtual void Adjust()
{
}
/// <summary>
/// 如果时间轴回退到效果的触发时间之前,则触发这个方法
/// </summary>
public virtual void Recover()
{
}
}
}

View File

@@ -8,16 +8,19 @@ namespace Ichni.RhythmGame
{
public class TimeDurationSubmodule: SubmoduleBase
{
public bool isOverridingDuration; //是否手动设置了时间区间,开启时,子物体的时间区间将被忽略
public float startTime, endTime; //起止时间
public TimeDurationSubmodule()
{
isOverridingDuration = false;
startTime = 0;
endTime = 0;
}
public TimeDurationSubmodule(float startTime, float endTime)
{
this.isOverridingDuration = false;
this.startTime = startTime;
this.endTime = endTime;
}