示例#1
0
 /// <summary>
 /// 移动摄影机到指定轨道
 /// </summary>
 /// <param name="trackID"> 轨道的ID 0 - 23 对应 1 - 24 品 </param>
 /// <param name="rant"> 缓动率,1表示一下移动过去,0表示不动 </param>
 public static void MoveCamera(int trackID, float rant = 0.1f)
 {
     if (!Main)
     {
         return;
     }
     trackID = Mathf.Clamp(trackID, 2, 21);
     MoveCamera(new Vector2(TheStageSetting.TrackPos(trackID).x, Main.CameraAimPos.y), rant);
 }
示例#2
0
        void Update()
        {
            step++;
            ///*
            if (GamePlaying && StageMicrophone.IsReady)
            {
                float[] f = StageMicrophone.GetData(StageMicrophone.SamplePosition() - StageMicrophone.sampleRate, StageMicrophone.sampleRate);
                for (int i = 0; i < f.Length - 1; i++)
                {
                    Debug.DrawLine(
                        new Vector3((float)(i - 1), f[i] * 10000f, 0f),
                        new Vector3((float)i, f[i + 1] * 10000f, 0f),
                        Color.red
                        );
                }
                StageMicrophone.Main.Source.time = Mathf.Max(((float)StageMicrophone.SamplePosition() / StageMicrophone.sampleRate) - 0.02f, 0f);
            }
            //*/



            // Ani

            TheStageSetting.MenuAni.SetBool("GamePlaying", GamePlaying);
            TheStageSetting.MainBtnAni.SetBool("SignedIn", IsSignedIn);

            // Menu Random Note

            if (!GamePlaying)
            {
                RandomAddNote(
                    Time + TheStageSetting.ShowNoteTime,
                    0, 24, 0, 6, 0f, 0.9f
                    );
//				if (step >= 200){
//					step = 0;
//					Stage.AddNote(new NoteInfo(
//						7,
//						6,
//						Time + TheStageSetting.ShowNoteTime,
//						0, 7
//					));
//				}
            }

            // Aim Movement

            int cameraID = (int)TheStageSetting.TrackID(TheStageSetting.CameraPos).x;

            for (int i = 0; i < TheStageSetting.FretSigns.Length; i++)
            {
                TheStageSetting.FretSigns[i].color = Color.Lerp(
                    TheStageSetting.FretSigns[i].color,
                    GamePlaying && Mathf.Abs(cameraID - i) < 4 ? TheStageSetting.FretSignColor : Color.clear,
                    0.1f
                    );
            }

            ShowingScore = StageScore.CurrentScore >= StageScore.FullScore ?
                           (int)StageScore.FullScore :
                           (int)Mathf.Lerp(
                ShowingScore,
                (GamePlaying ? StageScore.CurrentScore : 0),
                0.9f
                );
            TheStageSetting.ScoreTXT = ShowingScore;

            TheStageSetting.TitleBGM.volume = Mathf.Lerp(
                TheStageSetting.TitleBGM.volume,
                GamePlaying ? 0f: 1f,
                0.02f
                );

            if (GamePlaying && TheStageSetting.TitleBGM.volume < 0.01f)
            {
                TheStageSetting.TitleBGM.Pause();
            }

            TheStageSetting.TrackBackSR.color = Color.Lerp(
                TheStageSetting.TrackBackSR.color,
                GamePlaying ? TheStageSetting.TrackBackColor : Color.clear,
                0.01f
                );

            TheStageSetting.GuitarBody.color = TheStageSetting.GuitarHead.color = Color.Lerp(
                TheStageSetting.GuitarBody.color,
                GamePlaying ? Color.clear : TheStageSetting.GuitarColor,
                0.01f
                );

            TheStageSetting.MainCamera.localPosition = Vector3.Lerp(
                TheStageSetting.MainCamera.localPosition,
                GamePlaying ? TheStageSetting.CameraPlayingPos : TheStageSetting.CameraMenuPos,
                0.16f
                );

            TheStageSetting.MainCamera.localRotation = Quaternion.Lerp(
                TheStageSetting.MainCamera.localRotation,
                GamePlaying ? TheStageSetting.CameraPlayingRot : TheStageSetting.CameraMenuRot,
                0.16f
                );

            TheStageSetting.CameraPos = Vector3.Lerp(TheStageSetting.CameraPos, CameraAimPos, CameraMoveRant);
            TheStageSetting.CameraRot = Quaternion.Lerp(TheStageSetting.CameraRot, CameraAimRot, CameraRotRant);

            for (int i = 0; i < 6; i++)
            {
                TheStageSetting.Strings[i].color      = Color.Lerp(TheStageSetting.Strings[i].color, StringAimColors[i], StringColorRant);
                TheStageSetting.StringLights[i].color = Color.Lerp(TheStageSetting.Strings[i].color, StringAimColors[i], StringColorRant);
            }

            for (int i = 0; i < 24; i++)
            {
                TheStageSetting.TrackHighLights[i].color = Color.Lerp(TheStageSetting.TrackHighLights[i].color, TrackHightLightAimColors[i], TrackHightLightColorRant);
            }

            for (int i = 0; i < 6; i++)
            {
                Vector3 pos = StringAimPos[i] + (StringAimPos[i] - TheStageSetting.StringTFs[i].position) * StringShackRant;
                TheStageSetting.StringTFs[i].position = pos;
            }

            for (int i = 0; i < 25; i++)
            {
                TheStageSetting.FretWireLights[i].color = Color.Lerp(TheStageSetting.FretWireLights[i].color, FretWireLightAimColors[i], FretWireLightColorRant);
            }

            // Msg
            InputManager.StageUpdate();
        }