Exemplo n.º 1
0
        public void Draw(double currentBeat)
        {
            if (noteObject == null)
            {
                noteObject = Pools.BeatMarker.GetPooledObject();
                noteObject.transform.position = new Vector3(0, 0, -5);
                noteObject.SetActive(true);
            }

            var curDist = (float)Globals.GetDistAtBeat(currentBeat);
            var beatLoc = (float)Globals.GetDistAtBeat(BeatLocation);

            noteObject.transform.position = noteObject.transform.position.ModZ(beatLoc - curDist - Globals.BeatMarkerHeightOffset);
        }
Exemplo n.º 2
0
        private void SetVerts(double currentBeat)
        {
            var curDist = Globals.GetDistAtBeat(currentBeat);
            var y1      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist - Globals.StepNoteHeightOffset + 1;
            var y2      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist - Globals.StepNoteHeightOffset;

            SetVerts(
                (float)Globals.CalcTransX(0, 16, Side.Left),
                (float)Globals.CalcTransX(0, 16, Side.Right),
                (float)y1,
                (float)Globals.CalcTransX(0, 16, Side.Left),
                (float)Globals.CalcTransX(0, 16, Side.Right),
                (float)y2,
                0.05f);
        }
Exemplo n.º 3
0
        private void SetVerts(double currentBeat)
        {
            //var y1 = (parent.BeatLocation - currentBeat) * Globals.BeatToWorldYUnits + Globals.StepNoteHeightOffset;
            //var y2 = (parent.BeatLocation - currentBeat) * Globals.BeatToWorldYUnits - Globals.StepNoteHeightOffset;
            var curDist = Globals.GetDistAtBeat(currentBeat);
            var y1      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist + Globals.StepNoteHeightOffset;
            var y2      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist - Globals.StepNoteHeightOffset;

            SetVerts(
                (float)Globals.CalcTransX(parent, Side.Left),
                (float)Globals.CalcTransX(parent, Side.Right),
                (float)y1,
                (float)Globals.CalcTransX(parent, Side.Left),
                (float)Globals.CalcTransX(parent, Side.Right),
                (float)y2);
        }
Exemplo n.º 4
0
        private void SetVerts(double currentBeat)
        {
            var curDist = Globals.GetDistAtBeat(currentBeat);
            var y1      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist;
            var y2      = Globals.GetDistAtBeat(prevNote.BeatLocation) - curDist;

            int reps = (int)(Math.Ceiling(Math.Abs(y1 - y2) / repetitionY));

            // Offset y's if the note is a step note
            //if (prevNote.Type == NoteType.Step)
            //    y2 += Globals.StepNoteHeightOffset;
            /*else*/
            if (prevNote.Type == NoteType.Shuffle)
            {
                //y2 += Globals.ShuffleNoteHeightOffset;
                y2 -= Globals.ShuffleNoteHeightOffset;
            }
            if (parent.Type == NoteType.Shuffle)
            {
                y1 -= Globals.ShuffleNoteHeightOffset;
            }
            if (parent.Type == NoteType.Slide)
            {
                y1 -= Globals.StepNoteHeightOffset;
                y2 -= Globals.StepNoteHeightOffset;
            }
            if (parent.Type == NoteType.Hold)
            {
                y2 -= Globals.StepNoteHeightOffset;
            }

            var topNote = parent.Type == NoteType.Hold || parent.Type == NoteType.Shuffle ? prevNote : parent;

            SetVerts(
                Globals.CalcTransX(topNote, Side.Left),
                Globals.CalcTransX(topNote, Side.Right),
                y1,
                Globals.CalcTransX(prevNote, Side.Left),
                Globals.CalcTransX(prevNote, Side.Right),
                y2,
                reps);
        }
Exemplo n.º 5
0
        public void Draw(double currentBeat)
        {
            // Don't draw if this was hit and return to pool if it's active
            if (HitResult.WasHit)
            {
                if (noteObject != null)
                {
                    noteObject.SetActive(false);
                    noteObject = null;
                }
                return;
            }

            if (!texturesLoaded)
            {
                GetNoteObject();
            }

            var curDist = (float)Globals.GetDistAtBeat(currentBeat);
            var beatLoc = (float)Globals.GetDistAtBeat(BeatLocation);

            switch (Type)
            {
            case NoteType.Step:
            case NoteType.Motion:
                noteObject.transform.position = noteObject.transform.position.ModZ(beatLoc - curDist);
                break;

            case NoteType.Hold:
                break;

            case NoteType.Slide:
                break;

            case NoteType.Shuffle:
                break;

            default:
                break;
            }
        }
Exemplo n.º 6
0
        private void SetVerts(double currentBeat)
        {
            var curDist = Globals.GetDistAtBeat(currentBeat);
            var y1      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist + Globals.ShuffleNoteHeightOffset;
            var y2      = Globals.GetDistAtBeat(parent.BeatLocation) - curDist - Globals.ShuffleNoteHeightOffset;

            var minXNote = parent.LaneIndex > prevNote.LaneIndex ? prevNote : parent;
            var maxXNote = parent.LaneIndex > prevNote.LaneIndex ? parent : prevNote;

            float leftOffset  = 0;
            float rightOffset = 0;

            //float leftOffset = shuffleStartSide == Side.Left ? (float)Globals.ShuffleXOffset : 0;
            //float rightOffset = shuffleStartSide == Side.Right ? (float)Globals.ShuffleXOffset : 0;

            SetVerts(
                (float)Globals.CalcTransX(minXNote, Side.Left) + rightOffset,
                (float)Globals.CalcTransX(maxXNote, Side.Right) - leftOffset,
                (float)y1,
                (float)Globals.CalcTransX(minXNote, Side.Left) + rightOffset,
                (float)Globals.CalcTransX(maxXNote, Side.Right) - leftOffset,
                (float)y2);
        }
Exemplo n.º 7
0
        public void Draw(double currentBeat, Note prevNote, NoteType type = NoteType.All)
        {
            if (!texturesLoaded)
            {
                GetNoteObject(prevNote);
            }

            var curDist = (float)Globals.GetDistAtBeat(currentBeat);
            var beatLoc = (float)Globals.GetDistAtBeat(BeatLocation);

            bool regen = !isScaleSet || (lastSpeed != GameState.ScrollSpeed);

            switch (Type)
            {
            case NoteType.Step:
            case NoteType.Motion:
                Draw(currentBeat);
                break;

            case NoteType.Hold:
                if (regen)
                {
                    quadObject.SetVerts(this, prevNote);
                    quadObject.transform.position = new Vector3(quadObject.XOffset, -0.0001f, beatLoc - curDist - quadObject.YOffset);
                    lastSpeed  = GameState.ScrollSpeed;
                    isScaleSet = true;
                }
                quadObject.transform.position = quadObject.transform.position.ModZ(beatLoc - curDist - quadObject.YOffset);
                break;

            case NoteType.Slide:
                if (regen)
                {
                    quadObject.SetVerts(this, prevNote);
                    quadObject.transform.position = new Vector3(quadObject.XOffset, -0.0001f, beatLoc - curDist - quadObject.YOffset);
                    lastSpeed  = GameState.ScrollSpeed;
                    isScaleSet = true;
                }
                quadObject.transform.position = quadObject.transform.position.ModZ(beatLoc - curDist - quadObject.YOffset);
                break;

            case NoteType.Shuffle:
                if (regen)
                {
                    int   minLane, maxLane;
                    float flip, center;
                    if (this.IsComplexShuffle)
                    {
                        minLane = LaneIndex < EndLaneIndex ? LaneIndex : EndLaneIndex;
                        maxLane = (LaneIndex + Width) < (EndLaneIndex + EndWidth) ? (EndLaneIndex + EndWidth) : (LaneIndex + Width);
                        flip    = LaneIndex > prevNote.LaneIndex ? -1.0f : 1.0f;
                    }
                    else
                    {
                        minLane = LaneIndex < prevNote.LaneIndex ? LaneIndex : prevNote.LaneIndex;
                        maxLane = (LaneIndex + Width) < (prevNote.LaneIndex + prevNote.Width) ? (prevNote.LaneIndex + prevNote.Width) : (LaneIndex + Width);
                        flip    = LaneIndex > prevNote.LaneIndex ? 1.0f : -1.0f;
                    }
                    center = (float)((minLane - Globals.NumLanes / 2 + (maxLane - minLane) / 2.0f) * Globals.BeatToWorldXUnits);
                    noteObject.transform.position   = new Vector3(center, 0, -5);
                    noteObject.transform.localScale = new Vector3(flip * Globals.BaseShuffleScale / 16.0f * (maxLane - minLane), (float)(Globals.BaseNoteZScale * GameState.ScrollSpeed * Globals.ShuffleNoteMultiplier), 1);
                    quadObject.SetVerts(this, prevNote);
                    quadObject.transform.position = new Vector3(quadObject.XOffset, -0.0001f, -10);
                    lastSpeed  = GameState.ScrollSpeed;
                    isScaleSet = true;
                }
                float noteHeight = (float)(Globals.BaseNoteZScale * lastSpeed * Globals.ShuffleNoteMultiplier);
                //noteObject.transform.position = noteObject.transform.position.ModZ(beatLoc - curDist + (noteHeight - 0.5f) / 2);
                noteObject.transform.position = noteObject.transform.position.ModZ(beatLoc - curDist + noteHeight / 2);
                quadObject.transform.position = quadObject.transform.position.ModZ(beatLoc - curDist - quadObject.YOffset);
                break;

            default:
                break;
            }
        }