Exemplo n.º 1
0
 //miss判定
 public void missHit(KeyTime aTime)
 {
     foreach (Note tNote in mNotes)
     {
         if (tNote == null)
         {
             continue;               //音符なし
         }
         if (!(tNote.mCorrectQuarterBeat < aTime.mQuarterBeat))
         {
             continue;                                                   //キー入力のタイミングが過ぎていない
         }
         Note.HitResult tResult = tNote.missHit();
         if (tResult == Note.HitResult.miss)
         {
             continue;//既に評価されていた
         }
         //missの評価にする
         Subject.sendMessage(new Message("missedNote", new Arg(new Dictionary <string, object>()
         {
             { "note", tNote },
             { "evaluation", TypeEvaluation.Evaluation.miss },
             { "hitResult", tResult }
         })));
     }
 }
Exemplo n.º 2
0
    //キー入力
    public bool hit(KeyCode aKey, float aSecond, Note.HitNoteType aType)
    {
        int tLength = (mTriplet) ? 3 : 4;

        for (int i = 0; i < tLength; i++)
        {
            if (mNotes[i] == null)
            {
                continue;                   //音符なし
            }
            float tSecond = MusicScoreData.quarterBeatToMusicTime(mNotes[i].mCorrectQuarterBeat);
            TypeEvaluation.Evaluation tEvaluation = TypeEvaluation.evaluate(aSecond, tSecond);
            if (tEvaluation == TypeEvaluation.Evaluation.miss)
            {
                continue;                                               //タイミングがあってない
            }
            //タイミングOK
            Note.HitResult tHitResult = mNotes[i].hit(aKey, aType);
            if (tHitResult == Note.HitResult.miss)
            {
                continue;                                   //hitしなかった
            }
            //hitしたメッセージ送信
            Subject.sendMessage(new Message("hittedNote", new Arg(new Dictionary <string, object>()
            {
                { "note", mNotes[i] },
                { "evaluation", tEvaluation },
                { "difference", aSecond - tSecond },
                { "hitResult", tHitResult }
            })));
            return(true);
        }
        return(false);
    }