Пример #1
0
 public void WatchOtherDance(ChoreographerData data)
 {
     stageManager.ClearDancers();
     stageManager.CreateDataFromWholeChoreographer(data);
     stageManager.SetChampion(true);
     stageManager.ShowStage();
 }
Пример #2
0
    private void Start()
    {
        if (but_Voice != null)
        {
            but_Voice.onClick.AddListener(() => {
                MicManager.Instance.PlayAllVoice(rankObjectDebug.uid,
                                                 StaticData.LevelID,
                                                 () => {
                    anim_btnVoice.SetBool("isPlaying", true);
                },
                                                 () => {
                    LogManager.Log("下载录音失败");
                    anim_btnVoice.SetBool("isPlaying", false);
                });
            });
        }


        if (but_Video != null)
        {
            but_Video.onClick.AddListener(() => {
                JsonData data     = new JsonData();
                data["historyID"] = rankObjectDebug.historyID;
                DancingWordAPI.Instance.RequestLevelDancDataFromServer(data, (string resultData) => {
                    LogManager.Log(resultData);
                    JsonData result = JsonMapper.ToObject(resultData);
                    if (result.TryGetString("code").Equals("1"))
                    {
                        string json = result.TryGetData("data").TryGetData("danceData").TryGetString("danceResult");
                        if (SceneManager.GetActiveScene().name == "BookScene")
                        {
                            StaticData.ChoreographerData = json;
                            LoadSceneManager.Instance.LoadNormalScene("StageScene");
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(json))
                            {
                                PageManager.Instance.CurrentPage.GetNode <ScoreListNode>().Close(true);
                                PageManager.Instance.CurrentPage.GetNode <StageOverNode>().Close(true);
                                ChoreographerData cData = ChoreographerData.GetChoreographerDataFromJson(json);
                                CorePlayManager.Instance.WatchOtherDance(cData);
                            }
                            else
                            {
                                PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "无法获取舞蹈数据");
                            }
                        }
                    }
                }, () => {
                    LogManager.Log("获取过程数据失败!");
                });
            });
        }
    }
Пример #3
0
    // Use this for initialization
    void Start()
    {
        StaticData.NowLevelData  = LevelConfig.GetLevelDataByID(StaticData.LevelID);
        CorePlayData.SongID      = LanguageManager.GetSongIdFromLanguage(StaticData.NowLevelData.songID);
        CorePlayData.SongScript  = SongConfig.Instance.GetsongScriptBySongIDAndLevelDiffculty(LanguageManager.GetSongIdFromLanguage(StaticData.NowLevelData.songID), StaticData.NowLevelData.LevelDifficulty);
        CorePlayData.SongOffset  = SongConfig.Instance.GetSongOffsetBySongIDAndLevelDiffculty(LanguageManager.GetSongIdFromLanguage(StaticData.NowLevelData.songID), StaticData.NowLevelData.LevelDifficulty);
        CorePlayData.CurrentSong = BeatmapParse.Parse(CorePlayData.SongScript);


        ChoreographerData cData = ChoreographerData.GetChoreographerDataFromJson(StaticData.ChoreographerData);

        loader.LoadAudio();
        m_StageManager.Init(60f / CorePlayData.CurrentSong.BPM);
        m_StageManager.CreateDataFromWholeChoreographer(cData);
        m_StageManager.SetChampion(true);
        m_StageManager.ShowStage();


        AnalysisManager.Instance.OnEvent("enterStage", null);
    }
Пример #4
0
    public static ChoreographerData GetChoreographerDataFromJson(string json)
    {
        ChoreographerData cd = new ChoreographerData();

        JsonData data = JsonMapper.ToObject(json);

        cd.StartSpellIndex = int.Parse(data.TryGetString("startSpellIndex", "-1"));

        JsonData middleDancer = data["middle"];
        JsonData leftDancer   = data["left"];
        JsonData rightDancer  = data["right"];

        DancerInfo middle = new DancerInfo();
        DancerInfo left   = new DancerInfo();
        DancerInfo right  = new DancerInfo();

        middle.Name          = middleDancer.TryGetString("name");
        middle.ModelID       = middleDancer.TryGetString("modelID");
        middle.FaceID        = middleDancer.TryGetString("faceID");
        middle.m_Country     = (DancerInfo.Country) int.Parse(middleDancer.TryGetString("country"));
        middle.PlayerID      = middleDancer.TryGetString("uid");
        middle.m_RankingType = (DancerInfo.RankingType) int.Parse(middleDancer.TryGetString("ranking"));

        left.Name          = leftDancer.TryGetString("name");
        left.ModelID       = leftDancer.TryGetString("modelID");
        left.FaceID        = leftDancer.TryGetString("faceID");
        left.m_Country     = (DancerInfo.Country) int.Parse(leftDancer.TryGetString("country"));
        left.PlayerID      = leftDancer.TryGetString("uid");
        left.m_RankingType = (DancerInfo.RankingType) int.Parse(leftDancer.TryGetString("ranking"));

        right.Name          = rightDancer.TryGetString("name");
        right.ModelID       = rightDancer.TryGetString("modelID");
        right.FaceID        = rightDancer.TryGetString("faceID");
        right.m_Country     = (DancerInfo.Country) int.Parse(rightDancer.TryGetString("country"));
        right.PlayerID      = rightDancer.TryGetString("uid");
        right.m_RankingType = (DancerInfo.RankingType) int.Parse(rightDancer.TryGetString("ranking"));

        string[] middleActionList = middleDancer.TryGetString("actions").Split(',');
        string[] rightActionList  = rightDancer.TryGetString("actions").Split(',');
        string[] leftActionList   = leftDancer.TryGetString("actions").Split(',');

        for (int i = 0; i < middleActionList.Length; i++)
        {
            string[] array      = middleActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                middle.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                middle.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int             animationID = int.Parse(array[2]);
                DanceActionData danceData   = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.m_AnimationType = DanceActionData.AnimationType.Dance;
                middle.m_DanceActionList.Add(danceData);
                break;
            }
        }

        for (int i = 0; i < rightActionList.Length; i++)
        {
            string[] array      = rightActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                right.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                right.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int             animationID = int.Parse(array[2]);
                DanceActionData danceData   = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.m_AnimationType = DanceActionData.AnimationType.Dance;
                right.m_DanceActionList.Add(danceData);
                break;
            }
        }

        for (int i = 0; i < leftActionList.Length; i++)
        {
            string[] array      = leftActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                left.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                left.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int animationID = int.Parse(array[2]);
                int beatCounts  = 1;
                if (array.Length == 4)
                {
                    beatCounts = int.Parse(array[3]);
                }
                DanceActionData danceData = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.AnimationBeatCount = beatCounts;
                danceData.m_AnimationType    = DanceActionData.AnimationType.Dance;
                left.m_DanceActionList.Add(danceData);
                break;
            }
        }

        cd.m_MiddleDancer = middle;
        cd.m_LeftDancer   = left;
        cd.m_RightDancer  = right;

        return(cd);
    }