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); }
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); }
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); }
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); }
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; } }
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); }
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; } }