Пример #1
0
        public void CreateNextNoteBar(int player, bool isSuper)
        {
            if (player == (int)AggregatorPlayerID.ALL)
            {
                player = 0;
            }
            //Create next note bar.
            var numArrow   = _gameType == GameType.SYNC_PLUS ? SyncPlusLevel : (int)Players[player].Level;
            int numReverse = GetReverseNoteCount(player);

            if (isSuper)
            {
                numArrow   *= 2;
                numReverse *= 2;
            }
            _noteBars[player] = NoteBar.CreateNoteBar(numArrow, numReverse, SyncGameType ? _metrics["SyncNoteBar", _syncNotebarPositions[player]] : _metrics["NoteBar", player]);
            _noteBars[player].DisplayLimit  = numArrow;
            _noteBars[player].ID            = player;
            _noteBars[player].RednessSprite = new Sprite3D
            {
                ColorShading = Color.Red,
                Texture      = TextureManager.CreateWhiteMask("BeatMeter"),
                Height       = 125,
                Width        = 350,
                Position     = SyncGameType ? _metrics["SyncBeatlineBarBase", _syncNotebarPositions[player]] : _metrics["BeatlineBarBase", player]
            };
            SyncNoteBars(_noteBars[player]);
        }
Пример #2
0
 public static void SelectNote(NoteBar nb, bool adding)
 {
     if (!adding)
     {
         DeselectAll();
     }
     ins.selected.Add(nb);
     ins.RefreshInfoPanel();
 }
Пример #3
0
    private void LateUpdate()
    {
        if (songPlayer.IsPlaying)
        {
            if (!audioPlayer.isPlaying)
            {
                audioPlayer.Play();
                audioPlayer.time = songPlayer.PositionInSongInMillis / 1000.0f;
            }

            if (songPlayer.HasNewPhrase)
            {
                GameObject obj = Instantiate(noteBarPrefab, transform);
                NoteBar    nb  = obj.GetComponent <NoteBar>();
                nb.Init(songPlayer.NewPhrase, songPlayer, this, referenceBarColor);

                obj = Instantiate(singBarPrefab, transform);
                SingBar    sb         = obj.GetComponent <SingBar>();
                SongPhrase singPhrase = new SongPhrase {
                    StartBeat = songPlayer.NewPhrase.StartBeat,
                    Duration  = songPlayer.NewPhrase.Duration,
                    MidiNote  = songPlayer.NewPhrase.MidiNote
                };

                if (RollOutOfControlDice())
                {
                    //Debug.Log($"Out of control! {PhraseIdx}");
                    singPhrase.PitchShift = getRandomPitchShift();
                    singPhrase.VolumeAmp  = getRandomVolumeAmp();
                }
                else
                {
                    //Debug.Log($"In control. {PhraseIdx}");
                    singPhrase.PitchShift = 1.0f;
                    singPhrase.VolumeAmp  = 0.0f;
                }
                sb.Init(singPhrase, songPlayer, this, singerBarColor);
                singBars.Add(sb);
                if (!tuner.IsInitialized)
                {
                    tuner.CurrentSingBar = sb;
                }
            }
        }
    }
Пример #4
0
        public void SyncNoteBars(NoteBar notebar)
        {
            if (SyncGameType)
            {
                for (int x = 0; x < 3; x++)
                {
                    if (!Players[x].Playing)
                    {
                        continue;
                    }

                    _noteBars[x] = notebar.Clone();
                    _noteBars[x].DisplayLimit           = notebar.DisplayLimit;
                    _noteBars[x].ID                     = x;
                    _noteBars[x].Position               = _metrics["SyncNoteBar", _syncNotebarPositions[x]];
                    _noteBars[x].RednessSprite.Position = _metrics["SyncBeatlineBarBase", _syncNotebarPositions[x]];
                }
            }
        }
Пример #5
0
 public static bool IsSelected(NoteBar nb) => ins.selected.Contains(nb);
Пример #6
0
 public static void DeselectNote(NoteBar nb)
 {
     ins.selected.Remove(nb);
     ins.RefreshInfoPanel();
 }