コード例 #1
0
ファイル: Beat.cs プロジェクト: tTomonori/KeyNote
    private void createBeatObject(bool aTriplet = false)
    {
        if (mBeatObject != null)
        {
            mBeatObject.delete();
        }
        mBeatObject = MyBehaviour.createObjectFromPrefab <MyBehaviour>("score/" + (aTriplet ? "beatTriplet" : "beat"));
        mBeatObject.transform.parent        = this.gameObject.transform;
        mBeatObject.transform.localPosition = new Vector3(0, 0, 0);
        mBeatObject.transform.localScale    = new Vector3(1, 1, 1);

        //配列初期化
        if (aTriplet)
        {
            mNotes    = new Note[3];
            mLyricses = new LyricsBubble[3];
            mBpms     = new ChangeBpmObject[3];
        }
        else
        {
            mNotes    = new Note[4];
            mLyricses = new LyricsBubble[4];
            mBpms     = new ChangeBpmObject[4];
        }
        //behaviour取得
        mNotePositions   = mBeatObject.findChild("notes").GetComponent <MyBehaviour>().GetComponentsInChildrenWithoutSelf <Transform>();
        mLyricsPositions = mBeatObject.findChild("lyricses").GetComponent <MyBehaviour>().GetComponentsInChildrenWithoutSelf <Transform>();
        mBpmPositions    = mBeatObject.findChild("bpms").GetComponent <MyBehaviour>().GetComponentsInChildrenWithoutSelf <Transform>();
        sendTimeToColliders();
    }
コード例 #2
0
ファイル: MusicScore.cs プロジェクト: tTomonori/KeyNote
    //小節生成
    private Bar createBar(KeyTime aBarNum)
    {
        Bar tBar = MyBehaviour.createObjectFromPrefab <Bar>("score/bar" + MusicScoreData.mRhythm.ToString());

        tBar.mTime = aBarNum;
        //音符追加
        List <Arg> tNotes = MusicScoreData.getNotesInBar(aBarNum);

        foreach (Arg tNoteData in tNotes)
        {
            tBar.addNote(tNoteData);
        }
        //歌詞追加
        List <Arg> tLyrics = MusicScoreData.getLyricsInBar(aBarNum);

        foreach (Arg tLyricsData in tLyrics)
        {
            tBar.addLyrics(tLyricsData);
        }
        //bpm変化を示すオブジェクト追加
        List <Arg> tBpms = MusicScoreData.getChangeBpmInBar(aBarNum);

        foreach (Arg tBpm in tBpms)
        {
            tBar.addChangeBpm(tBpm);
        }
        //位置調整
        tBar.transform.parent        = gameObject.transform;
        tBar.transform.localPosition = new Vector3(0, convertToPositionY(tBar.mTime.mBarNum), 0);
        tBar.transform.localScale    = new Vector3(1f, 1f, 1f);
        tBar.name = "bar:" + aBarNum.mBarNum;
        return(tBar);
    }
コード例 #3
0
    //要素生成
    public override MyScrollViewElement createElement(int aIndex)
    {
        MusicListFileData.MusicListElement tData = new MusicListFileData.MusicListElement(mList[aIndex]);
        ScoreItem tItem = (aIndex < MusicList.mLength) ? MyBehaviour.createObjectFromPrefab <ScoreItem>("ui/item/scoreItem") : MyBehaviour.createObjectFromPrefab <ScoreItem>("ui/item/scoreItemUn");

        tItem.set(tData.title, new Arg(new Dictionary <string, object>()
        {
            { "file", tData.file }
        }));
        return(tItem.GetComponent <MyScrollViewElement>());
    }
コード例 #4
0
    //曲名のラベル生成
    private MusicLabel createLabel(int aNum)
    {
        MusicLabel tLabel = MyBehaviour.createObjectFromPrefab <MusicLabel>("selection/musicLabel");

        tLabel.name = "musicLabel:" + aNum;
        tLabel.mNum = aNum;
        tLabel.setLabel(MusicList.get(aNum).title);
        tLabel.transform.parent = gameObject.transform;
        tLabel.positionY        = -aNum;
        return(tLabel);
    }
コード例 #5
0
ファイル: AlartCreater.cs プロジェクト: tTomonori/KeyNote
    //警告文表示
    static public AlartWindow alart(string aText)
    {
        //前回の警告文がまだ表示されている場合は消す
        if (mLastCreated != null)
        {
            mLastCreated.delete();
        }
        //ウィンドウ生成
        AlartWindow tWindow = MyBehaviour.createObjectFromPrefab <AlartWindow>("ui/alartWindow");

        mLastCreated = tWindow;
        tWindow.set(aText);
        return(tWindow);
    }
コード例 #6
0
ファイル: Beat.cs プロジェクト: tTomonori/KeyNote
    //bpm変化を示すオブジェクト追加
    public void addChangeBpm(Arg aBpmData)
    {
        //オブジェクト生成
        ChangeBpmObject tObject = MyBehaviour.createObjectFromPrefab <ChangeBpmObject>("score/changeBpmObject");

        tObject.setData(aBpmData);

        KeyTime tTime = new KeyTime(aBpmData.get <float>("time"));

        //三連符判定
        checkTriplet(tTime.mIsInTriplet);
        //座標
        tObject.transform.parent        = mBpmPositions[(mTriplet) ? tTime.mQuarterBeatNumInTriplet : (int)tTime.mQuarterBeatInBeat];
        tObject.transform.localPosition = new Vector3(0, 0, -1);

        mBpms[tTime.mQuarterBeatIndexInBeat] = tObject;
    }
コード例 #7
0
ファイル: Beat.cs プロジェクト: tTomonori/KeyNote
    //歌詞追加
    public void addLyrics(Arg aLyricsData)
    {
        //歌詞生成
        LyricsBubble tLyrics = MyBehaviour.createObjectFromPrefab <LyricsBubble>("score/lyricsBubble");

        tLyrics.setData(aLyricsData);

        KeyTime tTime = aLyricsData.get <KeyTime>("keyTime");

        //三連符判定
        checkTriplet(tTime.mIsInTriplet);
        //座標
        tLyrics.transform.parent        = mLyricsPositions[(mTriplet) ? tTime.mQuarterBeatNumInTriplet : (int)tTime.mQuarterBeatInBeat];
        tLyrics.transform.localPosition = new Vector3(0, 0, -1);

        mLyricses[tTime.mQuarterBeatIndexInBeat] = tLyrics;
    }
コード例 #8
0
    static public Note create()
    {
        switch (MusicScoreData.mSelectedDifficult)
        {
        case ScoreDifficult.child:
            return(MyBehaviour.createObjectFromPrefab <NoteChild>("score/note/noteChild"));

        case ScoreDifficult.student:
            return(MyBehaviour.createObjectFromPrefab <NoteStudent>("score/note/noteStudent"));

        case ScoreDifficult.scholar:
            return(MyBehaviour.createObjectFromPrefab <NoteScholar>("score/note/noteScholar"));

        case ScoreDifficult.guru:
            return(MyBehaviour.createObjectFromPrefab <NoteGuru>("score/note/noteGuru"));

        case ScoreDifficult.edit:
            return(MyBehaviour.createObjectFromPrefab <NoteEdit>("score/note/noteEdit"));

        default:
            throw new Exception("Note : 未定義の難易度「" + MusicScoreData.mSelectedDifficult + "」");
        }
    }
コード例 #9
0
ファイル: ScoreHandleState.cs プロジェクト: tTomonori/KeyNote
        //理想のタイミングとの差の表示
        protected void displayTimeDifference(Note aNote, float aDifference)
        {
            TextMesh    tText      = MyBehaviour.createObjectFromPrefab <TextMesh>("score/parts/evaluationDifference");
            MyBehaviour tBehaviour = tText.GetComponent <MyBehaviour>();

            tText.name = "timeDifference";
            //テキスト設定
            double tDifference = Math.Round(Mathf.Abs(aDifference), 2);

            if (tDifference == 0)
            {
                tText.text  = "just";
                tText.color = new Color(0, 1, 0);
            }
            else if (aDifference < 0)
            {
                tText.text  = "-" + tDifference.ToString();
                tText.color = new Color(0, 0, 1);
            }
            else if (aDifference > 0)
            {
                tText.text  = "+" + tDifference.ToString();
                tText.color = new Color(1, 0, 0);
            }
            //表示位置調整
            tBehaviour.transform.parent        = parent.mScore.transform;
            tBehaviour.transform.localScale    = new Vector3(1.7f, 1.7f, 1);
            tBehaviour.transform.localPosition = new Vector3(0, 0, 0);
            tBehaviour.transform.Translate(aNote.transform.position - parent.mScore.transform.position);
            tBehaviour.positionZ  = -2;
            tBehaviour.positionY -= 1.5f;
            //削除
            tBehaviour.setTimeout(2, () => {
                tBehaviour.delete();
            });
        }