public static void Analyser(string osr_path, string osu_path)
        {
            var beatmap = GetBeatmap(osu_path);

            ReplayDecoder decoder = new ReplayDecoder(osr_path, beatmap);
            var           score   = decoder.Parse(File.OpenRead(osr_path));

            var frames        = BuildWrapReplyFrames(score.Replay);
            var mouse_actions = BuildWrapMouseActions(frames);

            int left  = mouse_actions[OsuAction.LeftButton].Count;
            int right = mouse_actions[OsuAction.RightButton].Count;

            HitResultRecordCollection result_collection = new HitResultRecordCollection();

            Console.WriteLine($"left:{left} right:{right}");

            JudgementParam judgement_param = new JudgementParam()
            {
                Score            = score,
                RawFrames        = frames,
                MouseActions     = mouse_actions,
                ResultCollection = result_collection
            };

            foreach (OsuHitObject obj in beatmap.HitObjects)
            {
                OsuHitObjectJudgement.Judge(obj, judgement_param);
            }
        }
示例#2
0
        private static void ApplyTrigHitObject(HitResultRecordCollection result_collection, OsuHitObject hit_object, WrapperMouseAction action, HitResult reuslt)
        {
            if (action != null)
            {
                action.TriggedHitObject = hit_object;
            }
            HitResultRecord record = new HitResultRecord(reuslt, hit_object, action);

            result_collection.AddResult(record);

            Debug.WriteLine($"Apply hit:{record}");
        }