예제 #1
0
    public void Judge()
    {
        float musicTime   = _gameManager.GetMusicTime();
        float frameSecond = _gameManager.m_frameSecond;

        JUDGERES judge = JUDGERES.POOR;

        //押されるべきタイミングより遅く押されたか、同時の場合
        if (noteSecond >= musicTime)
        {
            if (noteSecond <= musicTime + (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.PERFECT)))    //parfect
            {
                judge = JUDGERES.PERFECT;
            }
            else if (noteSecond <= musicTime + (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.GREAT)))   //great
            {
                judge = JUDGERES.GREAT;
            }
            else if (noteSecond <= musicTime + (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.GOOD)))  //good
            {
                judge = JUDGERES.GOOD;
            }
            else
            {
                judge = JUDGERES.POOR;
            }
        }

        //押されるべきタイミングより早く押された場合
        else
        {
            if (noteSecond >= musicTime - (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.PERFECT)))    //parfect
            {
                judge = JUDGERES.PERFECT;
            }
            else if (noteSecond >= musicTime - (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.GREAT)))   //great
            {
                judge = JUDGERES.GREAT;
            }
            else if (noteSecond >= musicTime - (frameSecond * _gameManager.GetJudgeDifference(JUDGERES.GOOD)))  //good
            {
                judge = JUDGERES.GOOD;
            }
            else
            {
                judge = JUDGERES.POOR;
            }
        }

        _gameManager.NotesTimingFunc(lineNum, judge);
        Destroy(this.gameObject);
    }
예제 #2
0
    /*
     * 判定結果を基に処理する関数
     */
    public void NotesTimingFunc(int num, JUDGERES judge)
    {
        GameObject     t_JudgeResult;       //判定結果を表示するためのゲームオブジェクト
        SpriteRenderer t_JudgeResultSprite; //t_JudgeResultのSpriteRendererコンポーネント

        t_JudgeResult = Instantiate(ref_judgeResultSprite,
                                    new Vector3(-4.0f + (2.0f * num), -1.0f, 0), Quaternion.identity);
        t_JudgeResultSprite = t_JudgeResult.GetComponent <SpriteRenderer>();
        //判定ごとの処理
        switch (judge)
        {
        case JUDGERES.PERFECT:
            t_JudgeResultSprite.sprite = ref_judgeSprite[(int)JUDGERES.PERFECT];
            judgeCount[(int)JUDGERES.PERFECT]++;
            _score += 3;
            break;

        case JUDGERES.GREAT:
            t_JudgeResultSprite.sprite = ref_judgeSprite[(int)JUDGERES.GREAT];
            judgeCount[(int)JUDGERES.GREAT]++;
            _score += 2;
            break;

        case JUDGERES.GOOD:
            t_JudgeResultSprite.sprite = ref_judgeSprite[(int)JUDGERES.GOOD];
            judgeCount[(int)JUDGERES.GOOD]++;
            _score++;
            break;

        case JUDGERES.POOR:
            t_JudgeResultSprite.sprite = ref_judgeSprite[(int)JUDGERES.POOR];
            judgeCount[(int)JUDGERES.POOR]++;
            break;

        default:
            break;
        }
        Debug.Log("Line:" + num + judge.ToString());
    }
예제 #3
0
 public float GetJudgeDifference(JUDGERES judgeRes)
 {
     return(m_judgeDifference[(int)judgeRes]);
 }