public bool CreateMark(IMarkInfo markInfo, out GameComponent mark, out GameComponent colorMark, out GameComponent axis, out GameComponent slideMark, out GameComponent slideColorMark, out PictureObject trace) { mark = colorMark = axis = slideMark = slideColorMark = trace = null; var handled = false; foreach (ICreateMark create in list) { if (!handled || (handled && create.IsEvaluateRequired())) { create.Create(markInfo); engine.Update(); } if (!handled && create.EvaluateHandled) { mark = create.CreatedMark; colorMark = create.CreatedColorMark; axis = create.CreatedAxis; slideMark = create.CreatedSlideMark; slideColorMark = create.CreatedSlideColorMark; trace = create.CreatedTrace; handled = true; } } return(handled); }
public virtual void Process(IMarkInfo markInfo) { this.markInfo = markInfo; FireEvent(Out, true); FireEvent(OutEnd, true); }
public virtual Vector2 CalculateColorPosition(ColorMarkInfo colorMarkInfo, IMarkInfo markInfo, float markTime, float currentTime, float bpm) { float scale = (float)bpm / DefaultBpm; float timediff = markTime - currentTime; return(OnChangeColorPosition(markInfo, scale, timediff, currentTime, bpm)); }
protected void UpdateColorMarkInfo(ColorMarkInfo colorMarkInfo, IMarkInfo markInfo, float markTime, float currentTime, float bpm, Vector2 vec) { var scale = (float)bpm / DefaultBpm; var timediff = markTime - currentTime; var rot = GetAngle(vec); vec += colorMarkInfo.BasePosition; var tempMat = Matrix.Transformation2D(Vector2.Zero, 0, Vector2.One, Vector2.Zero, timediff >= 0 ? rot : (float)(rot - Math.PI), Vector2.Zero); var vec1 = new Vector2(10, 4 * (float)Math.Cos((Time - currentTime) * scale * Math.PI)); var vec2 = new Vector2(vec1.X, -vec1.Y); vec1 = Vector2.TransformCoordinate(vec1, tempMat) + vec; vec2 = Vector2.TransformCoordinate(vec2, tempMat) + vec; if (colorMarkInfo.VerticesCount == 40) { Array.ConstrainedCopy(colorMarkInfo.Pos1, 1, colorMarkInfo.Pos1, 0, 39); colorMarkInfo.Pos1[39] = vec1; Array.ConstrainedCopy(colorMarkInfo.Pos2, 1, colorMarkInfo.Pos2, 0, 39); colorMarkInfo.Pos2[39] = vec2; } else { colorMarkInfo.Pos1[colorMarkInfo.VerticesCount] = vec1; colorMarkInfo.Pos2[colorMarkInfo.VerticesCount] = vec2; colorMarkInfo.VerticesCount++; } colorMarkInfo.ColorMark.Position = vec; }
public virtual void Create(IMarkInfo markInfo) { this.markInfo = markInfo; FireEvent(Out, true); FireEvent(OutEnd, true); }
public virtual void Process(IMarkInfo markInfo, PPDCoreModel.Data.MarkType buttonType) { this.markInfo = markInfo; PressedButton = buttonType; FireEvent(Out, true); FireEvent(OutEnd, true); }
public virtual void Calculate(IMarkInfo markInfo, float currentTime, float bpm) { this.markInfo = markInfo; CurrentTime = currentTime; BPM = bpm; FireEvent(Out, true); FireEvent(OutEnd, true); }
public override Vector2 CalculateColorPosition(ColorMarkInfo colorMarkInfo, IMarkInfo markInfo, float markTime, float currentTime, float bpm) { var vec = base.CalculateColorPosition(colorMarkInfo, markInfo, markTime, currentTime, bpm); if (markTime < currentTime) { return(Vector2.Zero); } return(vec); }
public virtual void ProcessEvaluate(IMarkInfo markInfo, PPDCoreModel.Data.EffectType effectType, bool missPress, bool release, Vector2 position) { this.markInfo = markInfo; IsMissPress = missPress; IsRelease = release; EffectType = effectType; Position = position; FireEvent(Out, true); FireEvent(OutEnd, true); }
public override void Process(IMarkInfo markInfo, PPDCoreModel.Data.MarkType buttonType) { SetValue(nameof(TargetID)); if (markInfo.ID == TargetID) { base.Process(markInfo, buttonType); } else { EvaluateHandled = false; } }
public override void Process(IMarkInfo markInfo) { SetValue(nameof(TargetID)); if (markInfo.ID == TargetID) { base.Process(markInfo); } else { EvaluateHandled = false; } }
public override void Calculate(IMarkInfo markInfo, float currentTime, float bpm) { SetValue(nameof(TargetID)); if (markInfo.ID == TargetID) { base.Calculate(markInfo, currentTime, bpm); } else { EvaluateHandled = false; } }
public override void ProcessEvaluate(IMarkInfo markInfo, PPDCoreModel.Data.EffectType effectType, bool missPress, bool release, Vector2 position) { SetValue(nameof(TargetID)); if (markInfo.ID == TargetID) { base.ProcessEvaluate(markInfo, effectType, missPress, release, position); } else { EvaluateHandled = false; } }
public override void ProcessEvaluate(IMarkInfo markInfo, PPDCoreModel.Data.EffectType effectType, bool missPress, bool release, Vector2 position) { SetValue(nameof(StartTime)); SetValue(nameof(EndTime)); if (StartTime <= markInfo.Time && markInfo.Time <= EndTime) { base.ProcessEvaluate(markInfo, effectType, missPress, release, position); } else { EvaluateHandled = false; } }
public override void Process(IMarkInfo markInfo, PPDCoreModel.Data.MarkType buttonType) { SetValue(nameof(StartTime)); SetValue(nameof(EndTime)); if (StartTime <= markInfo.Time && markInfo.Time <= EndTime) { base.Process(markInfo, buttonType); } else { EvaluateHandled = false; } }
public override void Create(IMarkInfo markInfo) { SetValue(nameof(StartTime)); SetValue(nameof(EndTime)); if (StartTime <= markInfo.Time && markInfo.Time <= EndTime) { base.Create(markInfo); } else { EvaluateHandled = false; } }
public override void Calculate(IMarkInfo markInfo, float currentTime, float bpm) { SetValue(nameof(StartTime)); SetValue(nameof(EndTime)); if (StartTime <= markInfo.Time && markInfo.Time <= EndTime) { base.Calculate(markInfo, currentTime, bpm); } else { EvaluateHandled = false; } }
public bool ProcessEvaluate(IMarkInfo markInfo, EffectType effectType, bool missPress, bool release, Vector2 position) { var handled = false; foreach (IProcessEvaluate proc in list) { if (!handled || (handled && proc.IsEvaluateRequired())) { proc.ProcessEvaluate(markInfo, effectType, missPress, release, position); engine.Update(); } if (!handled && proc.EvaluateHandled) { handled = true; } } return(handled); }
public bool Calculate(IMarkInfo markInfo, float currentTime, float bpm) { var handled = false; foreach (ICalculatePosition calc in list) { if (!handled || (handled && calc.IsEvaluateRequired())) { calc.Calculate(markInfo, currentTime, bpm); engine.Update(); } if (!handled && calc.EvaluateHandled) { markInfo.ColorPosition = calc.CalculatePosition; handled = true; } } return(handled); }
public bool Process(IMarkInfo markInfo, out ButtonType[] allowedButtons) { allowedButtons = null; var handled = false; foreach (IProcessAllowedButtons proc in list) { if (!handled || (handled && proc.IsEvaluateRequired())) { proc.Process(markInfo); engine.Update(); } if (!handled && proc.EvaluateHandled) { allowedButtons = proc.ProcessAllowedButtons; handled = true; } } return(handled); }
public bool Process(IMarkInfo markInfo, MarkType pressedButton, out bool isMissPress) { isMissPress = false; var handled = false; foreach (IProcessMissPress proc in list) { if (!handled || (handled && proc.IsEvaluateRequired())) { proc.Process(markInfo, pressedButton); engine.Update(); } if (!handled && proc.EvaluateHandled) { isMissPress = proc.ProcessMissPress; handled = true; } } return(handled); }
public bool Process(IMarkInfo markInfo, out float bpm) { bpm = 0; var handled = false; foreach (IProcessMarkBPM proc in list) { if (!handled || (handled && proc.IsEvaluateRequired())) { proc.Process(markInfo); engine.Update(); } if (!handled && proc.EvaluateHandled) { bpm = proc.ProcessBPM; handled = true; } } return(handled); }
protected Vector2 OnChangeColorPosition(IMarkInfo markInfo, float scale, float timediff, float currentTime, float bpm) { if (CheckColorPosition != null) { if (CheckColorPosition.Invoke(markInfo, currentTime, bpm)) { return(markInfo.ColorPosition); } } Vector2 vec; if (ChangeColorPosition != null) { vec = ChangeColorPosition.Invoke(scale, timediff); } else { vec = new Vector2(300 * timediff * scale, -30 * (float)Math.Sin(timediff * scale * Math.PI)); } vec = Vector2.TransformCoordinate(vec, matrix); return(vec); }
public override void Calculate(IMarkInfo markInfo, float currentTime, float bpm) { base.Calculate(markInfo, currentTime, bpm); }
public override void Process(IMarkInfo markInfo) { base.Process(markInfo); }
public override void Process(IMarkInfo markInfo, PPDCoreModel.Data.MarkType buttonType) { base.Process(markInfo, buttonType); }
public override void Create(IMarkInfo markInfo) { base.Create(markInfo); }