public static int GetPointValue(AccuracyType accuracy) { switch (accuracy) { case AccuracyType.FLAWLESS: return(2); case AccuracyType.PERFECT: return(2); case AccuracyType.GREAT: return(1); case AccuracyType.GOOD: return(0); case AccuracyType.BAD: return(-4); case AccuracyType.MISS: return(-8); case AccuracyType.OK: return(6); case AccuracyType.NG: return(0); default: Logger.Error("Scores.GetPointValue", String.Format("Unknown AccuracyType \"{0}\"", accuracy)); return(-999); } }
/// <summary> /// 小数精度计算 /// </summary> /// <param name="input"></param> /// <param name="accuracyType"></param> /// <param name="decimals"></param> /// <returns></returns> public static decimal ToAccuracy(this decimal?input, AccuracyType accuracyType, int decimals) { if (!input.HasValue) { return(0); } return(input.Value.ToAccuracy(accuracyType, decimals)); }
/// <summary> /// Setup current trajectory accuracy visual /// </summary> /// <param name="sender">Appropriate menu item</param> /// <param name="accuracy">Trajectory accuracy type</param> private void SetTrajectoryAccuracy(MenuItem sender, AccuracyType accuracy) { foreach (var item in TrajectoryAccuracyMenuItem.Items) { (item as MenuItem).IsChecked = false; } sender.IsChecked = true; trajectoryController.SetAccuracy(accuracy); }
public int GetCountForAccuracy(AccuracyType type) { int count = 0; foreach (ResultNote note in resultNotes) { if (note.accuracy.type == type) { count++; } } return(count); }
/// <summary> /// 小数精度计算 /// </summary> /// <param name="input"></param> /// <param name="accuracyType"></param> /// <param name="decimals"></param> /// <returns></returns> public static decimal ToAccuracy(this decimal input, AccuracyType accuracyType = AccuracyType.Rounding, int decimals = 2) { if (accuracyType == AccuracyType.Rounding) { return(Math.Round(input, decimals, MidpointRounding.AwayFromZero)); } else { var ext = Math.Pow(10, decimals).ToInt(); var value = input * ext; if (accuracyType == AccuracyType.JustGiveUp) { return(Math.Round(Math.Floor(value) / ext, decimals)); } else { return(Math.Round(Math.Ceiling(value) / ext, decimals)); } } }
public void Animate(AccuracyType type) { if (index == 4) { index = 0; } // ********************************** // NEED TO ATTACH IMAGE TO EACH OBJECT feedbackAnimators[index].SetTrigger("Bounce"); feedbackAnimators[index].gameObject.GetComponent <Material>(); /*int num = Random.Range(0, 4); * if (type == AccuracyType.Distance1) * { * Instantiate(ballaPrefab, this.transform.position, Quaternion.identity); * } * else if (type == AccuracyType.Distance2) * { * Instantiate(prettyGoodPrefab, this.transform.position, Quaternion.identity); * } * else if (type == AccuracyType.Distance3) * { * Instantiate(alrightPrefab, this.transform.position, Quaternion.identity); * } * else if (type == AccuracyType.Distance4) * { * Instantiate(crappyPrefab, this.transform.position, Quaternion.identity); * } * else if (type == AccuracyType.Distance5) * { * Instantiate(failPrefab, this.transform.position, Quaternion.identity); * }*/ index++; }
public void SetAccuracy(AccuracyType accuracy) { switch (accuracy) { case AccuracyType.Ultra: distanceEps = AverageDistance * 0.001; break; case AccuracyType.High: distanceEps = AverageDistance * 0.01; break; case AccuracyType.Medium: distanceEps = AverageDistance * 0.05; break; case AccuracyType.Low: distanceEps = AverageDistance * 0.25; break; default: break; } }
public Accuracy(AccuracyType type, bool tooLate) { this.type = type; this.tooLate = tooLate; }
public static int GetPointValue(AccuracyType accuracy) { switch (accuracy) { case AccuracyType.FLAWLESS: return 2; case AccuracyType.PERFECT: return 2; case AccuracyType.GREAT: return 1; case AccuracyType.GOOD: return 0; case AccuracyType.BAD: return -4; case AccuracyType.MISS: return -8; case AccuracyType.OK: return 6; case AccuracyType.NG: return 0; default: Logger.Error("Scores.GetPointValue", String.Format("Unknown AccuracyType \"{0}\"", accuracy)); return -999; } }
private void AdjustAndRedrawGUI(AccuracyType type) { // Adjust Accuracy Count accuracyCount[type]++; // Adjust Multiplier if (type != AccuracyType.Distance5) { if (multiplier < 4) { if (multiplierCount >= 9) { multiplier++; multiplierCount = 0; } else { multiplierCount++; } } } else { multiplier = 1; multiplierCount = 0; } // Adjust Score and Fail Meter if (type == AccuracyType.Distance1) { score += GameManager.Instance.Distance1Points * multiplier; failMeter += GameManager.Instance.FailMeter1Amount * multiplier; } else if (type == AccuracyType.Distance2) { score += GameManager.Instance.Distance2Points * multiplier; failMeter += GameManager.Instance.FailMeter2Amount * multiplier; } else if (type == AccuracyType.Distance3) { score += GameManager.Instance.Distance3Points * multiplier; failMeter += GameManager.Instance.FailMeter3Amount * multiplier; } else if (type == AccuracyType.Distance4) { score += GameManager.Instance.Distance4Points * multiplier; failMeter += GameManager.Instance.FailMeter4Amount * multiplier; } else if (type == AccuracyType.Distance5) { score += GameManager.Instance.Distance5Points * multiplier; failMeter += GameManager.Instance.FailMeter5Amount * multiplier; } failMeter = Mathf.Clamp(failMeter, 0, 100); if (failMeter <= 0) { GameManager.Instance.EndGame(false); } textScore.text = score.ToString(); textMultiplier.text = "x" + multiplier; textDistance1Count.text = accuracyCount[AccuracyType.Distance1].ToString(); textDistance2Count.text = accuracyCount[AccuracyType.Distance2].ToString(); textDistance3Count.text = accuracyCount[AccuracyType.Distance3].ToString(); textDistance4Count.text = accuracyCount[AccuracyType.Distance4].ToString(); textDistance5Count.text = accuracyCount[AccuracyType.Distance5].ToString(); failtMeterCenterImage.rectTransform.position = failMeterImage.rectTransform.position - (Vector3.right * (failMeterLength / 2)) + new Vector3(((failMeterLength / 100) * failMeter), 0f, 0f); }
private void HandleInput(NoteButton buttonPressed) { AccuracyType type = AccuracyType.Distance5; if (NoteQueue.Count > 0) { Note note = NoteQueue.Peek(); if (NoteQueue.Count > 0 && note != null && (new Vector3(note.transform.position.x, 0.0f, note.transform.position.z) - new Vector3(centerPoint.x, 0.0f, centerPoint.z)).magnitude <= GameManager.Instance.Distance5) { //Debug.Log("Current Note: " + note.Button + ", " + note.Direction); //Debug.Log("Button Pressed: " + buttonPressed.ToString() + ", Horizontal: " + Input.GetAxis("Horizontal") + ", Vertical: " + Input.GetAxis("Vertical")); if (note.Button == buttonPressed) { if (note.Direction == NoteDirection.Left || note.Direction == NoteDirection.Right) { if (note.Direction == DetermineHorizontalDirecction()) { //Debug.Log( DetermineAccuracy().ToString() + "!" ); type = DetermineAccuracy(); } else { //Debug.Log("Miss"); type = AccuracyType.Distance5; } } else if (note.Direction == NoteDirection.Up || note.Direction == NoteDirection.Down) { if (note.Direction == DetermineVerticalDirection()) { //Debug.Log( DetermineAccuracy().ToString() ); type = DetermineAccuracy(); } else { //Debug.Log( "MISS!" ); type = AccuracyType.Distance5; } } } else { type = AccuracyType.Distance5; } centerPointAnimator.SetTrigger("Bounce"); Destroy(NoteQueue.Dequeue().gameObject); } else { //Debug.Log( "Miss!: No top note." ); type = AccuracyType.Distance5; } } else { //Debug.Log( "Miss!: No top note." ); type = AccuracyType.Distance5; } AdjustAndRedrawGUI(type); //FeedbackManager.Instance.Animate(type); }