private static PoseDiff CalculateDiffs(float a, float b, PoseDiff diff) { float dd = Mathf.Abs (a - b); PoseDiff result; result.minDiff = Mathf.Min (diff.minDiff, dd); result.maxDiff = Mathf.Max (diff.maxDiff, dd); result.totalDiff = diff.totalDiff + dd; return result; }
private static PoseDiff CalculateDiffs(float a, float b, PoseDiff diff) { float dd = Mathf.Abs(a - b); PoseDiff result; result.minDiff = Mathf.Min(diff.minDiff, dd); result.maxDiff = Mathf.Max(diff.maxDiff, dd); result.totalDiff = diff.totalDiff + dd; return(result); }
public static PoseDiff CalculatePoseDiffs(PoseData a, PoseData b) { PoseDiff result = new PoseDiff(); result = CalculateDiffs(a.leftWing, b.leftWing, result); result = CalculateDiffs(a.rightWing, b.rightWing, result); //result = CalculateDiffs (a.head.x, b.head.x, result); //result = CalculateDiffs (a.head.y, b.head.y, result); //result = CalculateDiffs (a.tail.x, b.tail.x, result); //result = CalculateDiffs (a.tail.y, b.tail.y, result); return(result); }
private void DoScore() { for (int i = 0; i < birds.Length; i++) { if (!birds[i].IsInitialized()) { continue; } PoseData currentPose = Pose.CalculateFromController(birds[i].GetInput()); PoseData prevPose = lastPose[i]; //compare PoseDiff poseDiff = Pose.CalculatePoseDiffs(currentPose, prevPose); int randomScoreModifier = Random.Range(5, 10); int amount = Mathf.FloorToInt(poseDiff.totalDiff) * randomScoreModifier; ScoreHandler.GetInstance().AddScore(i, amount); lastPose[i] = currentPose; } ScoreChanged(); }
//To be called from BeatGUIBar public void HitFullBeat(Pose data) { for (int i = 0; i < birds.Length; i++) { if (!birds[i].IsInitialized()) { continue; } ControllerInput input = birds[i].GetInput(); PoseData currentPose = Pose.CalculateFromController(input); //compare PoseDiff poseDiff = data.CompareWithController(input, 0); float diff = poseDiff.totalDiff; //Log.Weikie("pose difference:" + diff); PlayerScoreFeedback(diff, i); lastPose[i] = currentPose; } ScoreChanged(); }
public static PoseDiff CalculatePoseDiffs(PoseData a, PoseData b) { PoseDiff result = new PoseDiff (); result = CalculateDiffs (a.leftWing, b.leftWing, result); result = CalculateDiffs (a.rightWing, b.rightWing, result); //result = CalculateDiffs (a.head.x, b.head.x, result); //result = CalculateDiffs (a.head.y, b.head.y, result); //result = CalculateDiffs (a.tail.x, b.tail.x, result); //result = CalculateDiffs (a.tail.y, b.tail.y, result); return result; }