Ejemplo n.º 1
0
    //-----------------------------------------------------------------
    //! @summary   連結ノーツの生成処理(引数あり)
    //!
    //! @parameter [noteData] 連結させるノーツデータ
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void CreateConnectNote(PiarhythmDatas.NoteData noteData)
    {
        // 連結ノーツを生成する
        GameObject connectNote = Instantiate(m_connectNotePrefab);

        // コンポーネントの取得
        ConnectNoteController connectNoteController = connectNote.GetComponent <ConnectNoteController>();

        // NoteManagerを設定する
        connectNoteController.SetNoteManager(this);
        // キャンバスの設定
        connectNoteController.SetCanvas(m_canvas);
        // キーボード情報
        connectNoteController.SetKeyDictionary(m_keyDictionary);
        // OptionSheetControllerを設定する
        connectNoteController.SetOptionSheetController(m_optionSheetController);

        // MusicalScoreの子に設定する
        connectNote.GetComponent <RectTransform>().SetParent(m_musicalScore.GetComponent <RectTransform>());

        // 連結に使用したノーツデータを登録する
        PiarhythmDatas.NoteData nextNoteData = noteData;
        while (nextNoteData != null)
        {
            connectNoteController.AddNoteData(nextNoteData);
            nextNoteData = nextNoteData.m_nextNoteData;
        }

        // 初期化処理
        connectNoteController.Initialize();

        // リストに登録する
        m_notesList.Add(connectNote);
    }
Ejemplo n.º 2
0
    //-----------------------------------------------------------------
    //! @summary   UIへノーツ情報を反映させる
    //!
    //! @parameter [displayNotes] 表示するノーツ
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void DisplayNotes(ConnectNoteController displayNotes)
    {
        // UIへ情報を反映させる
        if (displayNotes != null)
        {
            // ノーツデータの取得
            PiarhythmDatas.NoteData notesData = displayNotes.GetNoteData();

            // 音階の更新
            m_musicalScaleInputField.text = notesData.m_scale;

            // 開始の拍数を更新
            m_startBeatInputField.text = notesData.m_startBeat.ToString();

            // 色の更新
            if (notesData.m_color == Color.magenta)
            {
                m_colorDropdown.value = 0;
            }
            else if (notesData.m_color == Color.green)
            {
                m_colorDropdown.value = 1;
            }
            else if (notesData.m_color == Color.cyan)
            {
                m_colorDropdown.value = 2;
            }
        }
    }
Ejemplo n.º 3
0
    //-----------------------------------------------------------------
    //! @summary   再生瞬間のノーツの処理
    //!
    //! @parameter [elapsedTime] 経過時間
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void PlayMomentEditNotes(float elapsedTime)
    {
        foreach (GameObject notes in m_notesList)
        {
            PiarhythmDatas.NoteData notesData = null;

            // コンポーネントの取得
            if (notes.GetComponent <EditNotesController>())
            {
                EditNotesController editNotesController = notes.GetComponent <EditNotesController>();

                // データの取得
                notesData = editNotesController.GetNotesData();

                // 経過時間が既にノーツの開始時間を過ぎている
                float startTime = m_optionSheetController.GetStartTime(notesData.m_startBeat);
                if (elapsedTime > startTime)
                {
                    // 音をならないようにする
                    editNotesController.SetPlayedFlag(true);
                }
                else
                {
                    editNotesController.SetPlayedFlag(false);
                }
            }
            else
            {
                ConnectNoteController connectNoteController = notes.GetComponent <ConnectNoteController>();

                // データの取得
                notesData = connectNoteController.GetNoteData();

                // 経過時間が既にノーツの開始時間を過ぎている
                float startTime = m_optionSheetController.GetStartTime(notesData.m_startBeat);
                if (elapsedTime > startTime)
                {
                    // 音をならないようにする
                    connectNoteController.SetPlayedFlag(true);
                }
                else
                {
                    connectNoteController.SetPlayedFlag(false);
                }
            }
        }
    }
Ejemplo n.º 4
0
    //-----------------------------------------------------------------
    //! @summary   ノーツの連結を解除
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void CuttingNote()
    {
        // 選択されているノーツが複数だった場合、処理を終了する
        if (m_selectNotes.Count != 1)
        {
            return;
        }

        // 選択されているノーツが連結ノーツでなければ処理を終了する
        ConnectNoteController connectNoteController = m_selectNotes[0].GetComponent <ConnectNoteController>();

        if (connectNoteController == null)
        {
            return;
        }

        // データを取得する
        PiarhythmDatas.NoteData noteData = connectNoteController.GetNoteData();

        while (noteData != null)
        {
            // 次のノーツを保存しておく
            PiarhythmDatas.NoteData nextNoteData = noteData.m_nextNoteData;

            // 連結を切る
            noteData.m_nextNoteData = null;

            // ノーツを生成する
            CreateNotes(noteData);

            // ノーツの更新をする
            noteData = nextNoteData;
        }

        // リストから削除する
        m_notesList.Remove(m_selectNotes[0]);

        // 削除する
        Destroy(m_selectNotes[0]);

        // リストをクリアする
        m_selectNotes.Clear();

        // UIの表示を更新する
        SetSelectNotes(null);
    }
Ejemplo n.º 5
0
    //-----------------------------------------------------------------
    //! @summary   停止瞬間のノーツの処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void StopMomentEditNotes()
    {
        foreach (GameObject notes in m_notesList)
        {
            if (notes.GetComponent <EditNotesController>())
            {
                // コンポーネントの取得
                EditNotesController editNotesController = notes.GetComponent <EditNotesController>();

                // 音を復活させる
                editNotesController.SetPlayedFlag(false);
            }
            else
            {
                // コンポーネントの取得
                ConnectNoteController connectNoteController = notes.GetComponent <ConnectNoteController>();

                // 音を復活させる
                connectNoteController.SetPlayedFlag(false);
            }
        }
    }
Ejemplo n.º 6
0
    //-----------------------------------------------------------------
    //! @summary   連結ノーツの生成処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    public void CreateConnectNote()
    {
        // 連結可能か調べる
        if (!CheckConnectNote())
        {
            return;
        }

        // 連結ノーツを生成する
        GameObject connectNote = Instantiate(m_connectNotePrefab);

        // コンポーネントの取得
        ConnectNoteController connectNoteController = connectNote.GetComponent <ConnectNoteController>();

        // NoteManagerを設定する
        connectNoteController.SetNoteManager(this);
        // キャンバスの設定
        connectNoteController.SetCanvas(m_canvas);
        // キーボード情報
        connectNoteController.SetKeyDictionary(m_keyDictionary);
        // ConnectNoteSheetControllerを設定する
        connectNoteController.SetConnectNoteSheetController(m_connectNoteSheetController);
        // OptionSheetControllerを設定する
        connectNoteController.SetOptionSheetController(m_optionSheetController);

        // MusicalScoreの子に設定する
        connectNote.GetComponent <RectTransform>().SetParent(m_musicalScore.GetComponent <RectTransform>());

        // 連結に使用したノーツデータを登録する
        for (int i = 0; i < m_selectNotes.Count; ++i)
        {
            // データを取得する
            PiarhythmDatas.NoteData notesData = m_selectNotes[i].GetComponent <EditNotesController>().GetNotesData();

            // ノーツデータの連結先を更新する
            if (i + 1 < m_selectNotes.Count)
            {
                notesData.m_nextNoteData = m_selectNotes[i + 1].GetComponent <EditNotesController>().GetNotesData();
            }

            // 登録する
            connectNoteController.AddNoteData(notesData);

            // リストから削除する
            m_notesList.Remove(m_selectNotes[i]);

            // ノーツを削除する
            Destroy(m_selectNotes[i]);
        }

        // リストをクリアする
        m_selectNotes.Clear();

        // 初期化処理
        connectNoteController.Initialize();

        // リストに登録する
        m_notesList.Add(connectNote);

        // 生成されたノーツを選択中にする
        SetSelectNotes(connectNote);
    }