public void SetUp() { source = new TestClock(); interpolating = new InterpolatingFramedClock(); interpolating.ChangeSource(source); }
public BeatmapBackgroundWithStoryboard(WorkingBeatmap beatmap, string fallbackTextureName = "Backgrounds/bg1") : base(beatmap, fallbackTextureName) { storyboardClock = new InterpolatingFramedClock(); }
protected override void Load(BaseGame game) { base.Load(game); try { if (Beatmap == null) { Beatmap = ((OsuGame)game).Beatmaps.GetWorkingBeatmap(BeatmapInfo); } } catch { //couldn't load, hard abort! Exit(); return; } AudioTrack track = Beatmap.Track; if (track != null) { game.Audio.Track.SetExclusive(track); sourceClock = track; } sourceClock = (IAdjustableClock)track ?? new StopwatchClock(); playerClock = new InterpolatingFramedClock(sourceClock); Schedule(() => { sourceClock.Reset(); sourceClock.Start(); }); HitRenderer hitRenderer; ScoreOverlay scoreOverlay; var beatmap = Beatmap.Beatmap; if (beatmap.BeatmapInfo?.Mode > PlayMode.Osu) { //we only support osu! mode for now because the hitobject parsing is crappy and needs a refactor. Exit(); return; } PlayMode usablePlayMode = beatmap.BeatmapInfo?.Mode > PlayMode.Osu ? beatmap.BeatmapInfo.Mode : PreferredPlayMode; switch (usablePlayMode) { default: scoreOverlay = new ScoreOverlayOsu(); hitRenderer = new OsuHitRenderer { Objects = beatmap.HitObjects, Anchor = Anchor.Centre, Origin = Anchor.Centre }; break; case PlayMode.Taiko: scoreOverlay = new ScoreOverlayOsu(); hitRenderer = new TaikoHitRenderer { Objects = beatmap.HitObjects, Anchor = Anchor.Centre, Origin = Anchor.Centre }; break; case PlayMode.Catch: scoreOverlay = new ScoreOverlayOsu(); hitRenderer = new CatchHitRenderer { Objects = beatmap.HitObjects, Anchor = Anchor.Centre, Origin = Anchor.Centre }; break; case PlayMode.Mania: scoreOverlay = new ScoreOverlayOsu(); hitRenderer = new ManiaHitRenderer { Objects = beatmap.HitObjects, Anchor = Anchor.Centre, Origin = Anchor.Centre }; break; } hitRenderer.OnHit += delegate(HitObject h) { scoreOverlay.OnHit(h); }; hitRenderer.OnMiss += delegate(HitObject h) { scoreOverlay.OnMiss(h); }; if (autoplay) { hitRenderer.Schedule(() => hitRenderer.DrawableObjects.ForEach(h => h.State = ArmedState.Armed)); } Children = new Drawable[] { hitRenderer, scoreOverlay, }; }
private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game) { try { if (Beatmap == null) { Beatmap = beatmaps.GetWorkingBeatmap(BeatmapInfo); } } catch { //couldn't load, hard abort! Exit(); return; } AudioTrack track = Beatmap.Track; if (track != null) { audio.Track.SetExclusive(track); sourceClock = track; } sourceClock = (IAdjustableClock)track ?? new StopwatchClock(); Clock = new InterpolatingFramedClock(sourceClock); Schedule(() => { sourceClock.Reset(); sourceClock.Start(); }); var beatmap = Beatmap.Beatmap; if (beatmap.BeatmapInfo?.Mode > PlayMode.Osu) { //we only support osu! mode for now because the hitobject parsing is crappy and needs a refactor. Exit(); return; } PlayMode usablePlayMode = beatmap.BeatmapInfo?.Mode > PlayMode.Osu ? beatmap.BeatmapInfo.Mode : PreferredPlayMode; ruleset = Ruleset.GetRuleset(usablePlayMode); var scoreOverlay = ruleset.CreateScoreOverlay(); var hitRenderer = ruleset.CreateHitRendererWith(beatmap.HitObjects); hitRenderer.OnHit += delegate(HitObject h) { scoreOverlay.OnHit(h); }; hitRenderer.OnMiss += delegate(HitObject h) { scoreOverlay.OnMiss(h); }; if (Autoplay) { hitRenderer.Schedule(() => hitRenderer.DrawableObjects.ForEach(h => h.State = ArmedState.Armed)); } Children = new Drawable[] { new PlayerInputManager(game.Host) { PassThrough = false, Children = new Drawable[] { hitRenderer, } }, scoreOverlay, }; }