Beispiel #1
0
    // Use this for initialization
    void Start()
    {
        SimpleMusicData musicData = GameParameter.Instance().GetSelectMusicData();

        max_count  = (musicData.KeyArray == null) ? 0 : musicData.KeyArray.Length;
        scoreBoard = GameObject.Find("ScoreBoard");
        scoreText  = scoreBoard.GetComponent <Text>();
    }
Beispiel #2
0
    void Start()
    {
        // 楽曲データを読み込む
        GameParameter   gameParameter = GameParameter.Instance();
        SimpleMusicData musicData     = gameParameter.GetSelectMusicData();

        audioManager = AudioManager.Instance;

        // オーディオソースの準備
        audioManager.SetClip(musicData.GetAudioClip());

        // 楽曲を再生(ゲーム開始)する。
        audioManager.Play();
    }
Beispiel #3
0
    protected override void Load()
    {
        // 楽曲の一覧を取得する
        MusicListJson list;
        string        json = Resources.Load(path).ToString();

        list = JsonUtility.FromJson <MusicListJson>(json);

        SimpleMusicData   musicData;
        MusicListItemJson item;
        MusicInf          inf;

        MusicDTO.EditData data;
        MusicOldDTO       oldData;

        // 楽曲の詳細な情報を取得する
        for (int i = 0; i < list.items.Length; i++)
        {
            musicData = new SimpleMusicData();

            // id,pathを読み込む
            item = list.items[i];

            // 楽曲情報を読み込む
            json = Resources.Load("Music/" + item.path + "/info").ToString();
            inf  = JsonUtility.FromJson <MusicInf>(json);

            // 譜面情報を読み込む
            if (inf.score_ver == 1)
            {
                json = Resources.Load("Music/" + item.path + "/score").ToString();
                data = JsonUtility.FromJson <MusicDTO.EditData>(json);
                MusicDTOFormatter musicDTOFormatter = new MusicDTOFormatter(item, inf, data);
                musicData = musicDTOFormatter.ToSimpleMusicData();
            }
            else if (inf.score_ver == 0)
            {
                json    = Resources.Load("Music/" + item.path + "/score").ToString();
                oldData = JsonUtility.FromJson <MusicOldDTO>(json);
                MusicDTOFormatter musicDTOFormatter = new MusicDTOFormatter(item, inf, oldData);
                musicData = musicDTOFormatter.ToSimpleMusicData();
            }

            musicDataList.Add(musicData);
        }
    }
Beispiel #4
0
    void InitNotes()
    {
        musicData = GameParameter.Instance().GetSelectMusicData();

        // ノート情報
        timingArray = musicData.TimingArray;
        keyArray    = musicData.KeyArray;
        noteIndex   = 0;
        poolIndex   = 0;

        float fallDist  = Constants.DEFAULT_FALL_DIST;
        float fallSpeed = (3 / Constants.DEFAULT_FALL_SPEED) * (120.0f / musicData.Bpm);

        fallTime = fallSpeed / fallDist * 100;
        Debug.Log("fallDist : " + fallDist);
        Debug.Log("fallSpeed : " + fallSpeed);
        Debug.Log("falltime : " + fallTime);
        float fallDistOffset = 0;

        if (!Mathf.Approximately(Constants.JUDGE_OFFSET_TIME, 0.0f))
        {
            fallDistOffset = (float)(fallDist / fallTime * Constants.JUDGE_OFFSET_TIME);
        }
        else
        {
            fallDistOffset = 0;
        }

        //ノートプールの準備
        notePool       = new List <Note>();
        activeNoteList = new List <Note>();

        // TODO:fallSpeedはBPMによって変化させる
        for (var i = 0; i < poolSize; i++)
        {
            GameObject noteObject = Instantiate(notePrefab, new Vector3(0, -100, -100), new Quaternion(0.0f, 180.0f, 0.0f, 1.0f));
            Note       note       = noteObject.GetComponent <Note>();
            note.InitNote();
            note.fallDist       = fallDist;
            note.fallDistOffset = fallDistOffset;
            note.fallSpeed      = fallSpeed;
            note.fallTime       = fallTime;
            notePool.Add(note);
        }
    }
    public SimpleMusicData ToSimpleMusicData()
    {
        SimpleMusicData musicData = new SimpleMusicData();

        if (dto_data != null)
        {
            // MusicDTO.EditDataをSimpleMusicDataに変換する
            int[]    key    = new int[dto_data.notes.Count];
            double[] timing = new double[dto_data.notes.Count];

            var j = 0;
            foreach (var item in dto_data.notes)
            {
                double lpb   = item.LPB;
                double num   = item.num;
                int    block = item.block;

                //1拍あたりの時間を計算する
                double section = 60 / (double)dto_data.BPM /* *4 */;
                double beat    = section / lpb;

                timing[j] = beat * num;
                key[j]    = block;
                j++;
            }
            musicData.TimingArray = timing;
            musicData.KeyArray    = key;
            musicData.Bpm         = dto_data.BPM;
        }
        else if (old_data != null)
        {
            musicData.TimingArray = old_data.timing;
            musicData.KeyArray    = old_data.key;
            musicData.Bpm         = 160;
        }
        musicData.Id   = item.id;
        musicData.Path = item.path;
        musicData.Inf  = inf;

        return(musicData);
    }