Exemple #1
0
        protected override void Update()
        {
            if (!GameSession.IsPlaying)
            {
                return;
            }

            curTime = MusicController.CurrentTime;

            // Allocate next frame data
            nextFrame = null;
            if (replayWriter != null)
            {
                nextFrame = replayWriter.NextWriteItem;
                nextFrame?.Reset();
            }

            // Process update for other game modules.
            inputter.UpdateInputs(curTime);
            HitObjectHolder.UpdateObjects(curTime);

            // Record replay frame
            if (nextFrame != null)
            {
                nextFrame.Time = curTime;
                replayWriter.WriteData(nextFrame);
            }
        }
        protected override void Update()
        {
            if (!GameSession.IsPlaying)
            {
                return;
            }

            float musicTime = MusicController.CurrentTime;

            while (true)
            {
                var frame = replayReader.PeekData();
                if (frame == null || frame.Time > musicTime)
                {
                    if (didSkip)
                    {
                        lastFrameTime = musicTime;
                    }
                    break;
                }

                lastFrameTime = frame.Time;
                didSkip       = frame.IsSkipped;

                // Process update for other game modules.
                inputter.UpdateInputs(frame.Time, frame.Inputs);
                HitObjectHolder.UpdateObjects(musicTime);
                UpdateJudgements(frame);

                replayReader.AdvanceIndex();
            }
        }
Exemple #3
0
        private void Init()
        {
            // Init inputter
            inputter = CreateGameInputter();
            TouchEffectDisplay.SetInputter(inputter);

            // Assign processor instance to other game modules.
            HitObjectHolder.SetGameProcessor(this);
        }
        protected BaseInputter(HitBarDisplay hitBar, HitObjectHolder hitObjectHolder)
        {
            this.hitBar          = hitBar;
            this.hitObjectHolder = hitObjectHolder;

            hitBarCursor = CreateCursor();
            hitBar.LinkCursor(hitBarCursor);

            keyRecycler = new ManagedRecycler <BeatsKey>(CreateKey);
            keyRecycler.Precook(3);
        }
        /// <summary>
        /// Event called on game session hard disposal.
        /// </summary>
        protected virtual void OnHardDispose()
        {
            GameSession.OnSoftInit    -= OnSoftInit;
            GameSession.OnSoftDispose -= OnSoftDispose;
            GameSession.OnHardDispose -= OnHardDispose;

            hitBar.UnlinkCursor();

            hitBar          = null;
            hitObjectHolder = null;
            hitBarCursor    = null;
            keyRecycler     = null;
            pointerEvent    = null;
            raycastResults  = null;
        }
 public ReplayInputter(FileInfo replayFile, HitBarDisplay hitBar, HitObjectHolder hitObjectHolder) : base(hitBar, hitObjectHolder)
 {
     base.replayFile = replayFile;
 }
 public LocalPlayerInputter(HitBarDisplay hitBar, HitObjectHolder hitObjectHolder) : base(hitBar, hitObjectHolder)
 { }