private void Update() { if (_state == State.Gameplay && _beatMap.IsReady()) { if (_beatMap.IsDone()) { _state = State.Result; playerData.SetMusicGrade(gradeList); _audioManager.TryPlay(); _currentDialog = resultDialog; _currentDialog.ApplyCharacter(_characterData); _currentDialog.Display(playerData, _characterData); return; } BeatObject beatObject = _beatMap.RequestDrawableBeat(); if (beatObject != null) { BeatRenderer beatRenderer = Instantiate(prefabBeat).GetComponent <BeatRenderer>(); beatRenderer.SetData(beatObject, _beatMap); beatRenderer.Init(); } BeatObjectGrade grade = _beatMap.React(false); if (grade == BeatObjectGrade.Miss) { gradeList.Add(grade); badAudio.Play(); Instantiate(prefabMiss); } } }
private BeatObject CreateBeat(int index) { GameObject beatObject = Instantiate(beatPrefab); beatObject.transform.position = this.transform.position; BeatObject beat = beatObject.GetComponent <BeatObject>(); beat.Init(index); return(beat); }
public BeatMap GenerateBeatMap() { BeatMap beatMap = beatMapBase.ShallowClone(); beatMap.beatObjectList.Clear(); foreach (int timestampInt in timestampList) { BeatObject beatObject = new BeatObject(); beatObject.beatTime = timestampInt / 1000f; beatMap.beatObjectList.Add(beatObject); } return(beatMap); }
void MonitorCurrentBeats() { if (currentPlayerBeat == null) { for (int i = 1; i < playerBar.transform.childCount; i++) { BeatObject beatScript = playerBar.transform.GetChild(i).gameObject.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat) { currentPlayerBeat = playerBar.transform.GetChild(i).gameObject; break; } } } else { BeatObject beatScript = currentPlayerBeat.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat && beatScript.DistanceToCenter > middleRegion) { // Whoops you missed a beat, time to update current player beat beatScript.MissedBeat = true; UpdateCurrentPlayerBeat(false); } } if (currentEnemyBeat == null) { for (int i = 1; i < enemyBar.transform.childCount; i++) { BeatObject beatScript = enemyBar.transform.GetChild(i).gameObject.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat) { currentEnemyBeat = enemyBar.transform.GetChild(i).gameObject; break; } } } else { BeatObject beatScript = currentEnemyBeat.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat && beatScript.DistanceToCenter < -middleRegion) { // Whoops you missed a beat, time to update current player beat beatScript.MissedBeat = true; UpdateCurrentEnemyBeat(false); } } }
protected void Update() { BaseUpdate(); lastTime = currentTime; currentTime = Data.GetTigerSong().time; if (currentTime > songSegmentEndTime) { LoadNextScene(); } if (!itsOver) { if (beatIndexPlayer < beatTimes.Count) { // the player has to be able to see the hurdles ahead of time float startTime = beatTimes[beatIndexPlayer] - beatRadiusVisualHint; float endTime = beatTimes[beatIndexPlayer] + beatRadiusVisualHint; // kick off the hurdle if (currentTime > startTime) { Hurdle newHurdle = Instantiate(hurdle.gameObject).GetComponent <Hurdle>(); StartCoroutine(KickOffHurdle(beatIndexPlayer, newHurdle)); beatIndexPlayer++; } } if (aTimes.Count > 0 && aIndex < aTimes.Count) { // the player has to be able to see the hurdles ahead of time float startTime = beatTimes[aIndex] - beatRadiusVisualHint; float endTime = beatTimes[aIndex] + beatRadiusVisualHint; // kick off the hurdle if (currentTime > startTime) { BeatObject newHurdle = Instantiate(a.gameObject).GetComponent <BeatObject>(); StartCoroutine(KickOffBeatObject(aIndex, newHurdle)); aIndex++; } } } }
/// <summary> /// kick off a visual flair on time to beat /// </summary> /// <param name="index"></param> /// <param name="beatObject"></param> /// <returns></returns> protected IEnumerator KickOffBeatObject(int index, BeatObject beatObject) { bool madeYellow = false; float visualStartTime = aTimes[index] - beatRadiusVisualHint; float visualEndTime = aTimes[index] + beatRadiusVisualHint; while (currentTime < visualEndTime) { float hurdleProgress = (currentTime - visualStartTime) / (visualEndTime - visualStartTime); beatObject.transform.position = Vector3.Lerp(aStart.transform.position, aEnd.transform.position, hurdleProgress); yield return(0); } yield return(new WaitForSeconds(0.2f)); Destroy(beatObject.gameObject); }
private void updateBeatObject(BeatObject obj) { if (obj is BeatObjectDefault) { BeatObjectDefault curObj = obj as BeatObjectDefault; curObj.BarTime = nextBarTime; } }
/// <summary> /// /// </summary> public void CheckForBeat(KeyCode key) { if (currentPlayerBeat != null) { BeatObject beatScript = currentPlayerBeat.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat && beatScript.DistanceToCenter >= -middleRegion && beatScript.DistanceToCenter <= middleRegion) { switch (beatScript.myBeatType) { case BeatObject.BeatType.Up: if (key == KeyCode.UpArrow) { UpdateCurrentPlayerBeat(true); } break; case BeatObject.BeatType.Down: if (key == KeyCode.DownArrow) { UpdateCurrentPlayerBeat(true); } break; case BeatObject.BeatType.Left: if (key == KeyCode.LeftArrow) { UpdateCurrentPlayerBeat(true); } break; case BeatObject.BeatType.Right: if (key == KeyCode.RightArrow) { UpdateCurrentPlayerBeat(true); } break; case BeatObject.BeatType.Normal: if (key == KeyCode.Space) { UpdateCurrentPlayerBeat(true); } break; } } else { // they hit the key with no beat in range } } if (currentEnemyBeat != null) { BeatObject beatScript = currentEnemyBeat.GetComponent <BeatObject>(); if (!beatScript.IsOriginal && !beatScript.MissedBeat && beatScript.DistanceToCenter >= -middleRegion && beatScript.DistanceToCenter <= middleRegion) { if (key == KeyCode.Space) { UpdateCurrentEnemyBeat(true); } } else { // they hit the key with no beat in range } } }
public void SetData(BeatObject beatObject, BeatMap beatMap) { _beatMap = beatMap; _beatObject = beatObject; }