Esempio n. 1
0
    public void UpdateTime()
    {
        if (isPlaying)
        {
            ChartStruct chart = chartData.GetSelectingChart();

            _playTime += Time.deltaTime;
            FlameManage();

            _playTimingCount = Clac.TimingCount(
                time: _playTime - chart.musicOffset,
                oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
                bpm: chart.bpm,
                nowBpm: ref _nowBpm,
                tempoChanger: chart.tempoChangers
                );

            if (_playTimingCount > chart.chartLength)
            {
                _playTimingCount = chart.chartLength;
                SetTimePlay(false);
            }

            _measureCount = Clac.MeasureByTimingCount(_playTimingCount, chart.beat, chart.beatParam, chart.tempoChangers);

            timeSlider.value = _playTime;
        }
        else
        {
            UpdateTimeFromInput();
        }
    }
Esempio n. 2
0
    public void SetTimingCount(float time)
    {
        ChartStruct chart = chartData.GetSelectingChart();

        if (needsClacCount)
        {
            _playTimingCount = Clac.TimingCount(
                time: time - chart.musicOffset,
                oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
                bpm: chart.bpm,
                nowBpm: ref _nowBpm,
                tempoChanger: chart.tempoChangers
                );
            _showTimingCount = Clac.ShowTimingCount(_playTimingCount, chart.chartEffecters);
            _measureCount    = Clac.MeasureByTimingCount(_playTimingCount, chart.beat, chart.beatParam, chart.tempoChangers);
        }
        else
        {
            needsClacCount = true;
        }

        countText.SetText(_playTimingCount.ToString());
        showCountText.SetText(_showTimingCount.ToString());
        timeText.SetText("{0:3}", time);
    }
Esempio n. 3
0
 public void MoveMeasure(float noteSpeed, ChartStruct chart)
 {
     foreach (MeasureLine measureLine in measureLines)
     {
         measureLine.MovePos(timeController.ShowTimingCount, noteSpeed, timeController.EnableShowCount);
     }
 }
    public void Init(int timing, float chartSpeed, ChartStruct chartStruct)
    {
        timingCount     = timing;
        showTimingCount = Clac.ShowTimingCount(timingCount, chartStruct.chartEffecters);
        chartSpeedText.SetText("{0:2}", chartSpeed);

        effecterStruct.timing     = timing;
        effecterStruct.chartSpeed = chartSpeed;
    }
Esempio n. 5
0
    public override void Init(NotesStruct notesStruct, ChartStruct chartStruct, Material shinyMaterial = null)
    {
        base.Init(notesStruct, chartStruct, shinyMaterial);

        endTiming          = timingCount + notesStruct.length;
        endShowTimingCount = Clac.ShowTimingCount(endTiming, chartStruct.chartEffecters);
        EndTimingFlame     = Clac.TimingFlame(endTiming, chartStruct);
        endSpeed           = notesStruct.speed;
    }
    public void Init(int timing, float bpm, int beat, int beatParam, ChartStruct chartStruct)
    {
        timingCount     = timing;
        showTimingCount = Clac.ShowTimingCount(timingCount, chartStruct.chartEffecters);
        bpmText.SetText("{0:0}", bpm);
        beatText.SetText(beat.ToString() + "/" + beatParam.ToString());

        changerStruct.timing    = timing;
        changerStruct.bpm       = bpm;
        changerStruct.beat      = beat;
        changerStruct.beatParam = beatParam;
    }
Esempio n. 7
0
    public static int TimingFlame(int timingCount, ChartStruct chart)
    {
        float time = TimeByTimingCount(
            count: timingCount,
            oneBeatCount: OneBeatCount(chart.beat, chart.beatParam),
            musicOffset: chart.musicOffset,
            bpm: chart.bpm,
            tempoChanger: chart.tempoChangers
            );

        return((int)(time * Application.targetFrameRate));
    }
    public void Init()
    {
        ChartStruct chart         = chartDataController.GetSelectingChart();
        int         measureLength = Clac.MeasureByTimingCount(chart.chartLength, chart.beat, chart.beatParam, chart.tempoChangers);

        System.Array.Resize(ref measureLines, measureLength);

        for (int i = 0; i < measureLines.Length; i++)
        {
            measureLines[i] = Instantiate(measureObj, createController.lanePrarent);
            int measureTiming = Clac.TimingCountByMeasure(i, chart.beat, chart.beatParam, chart.tempoChangers);
            measureLines[i].Init(Clac.ShowTimingCount(measureTiming, chart.chartEffecters), measureTiming);
        }
    }
Esempio n. 9
0
    private void UpdateTimeFromInput()
    {
        float mouseScroll = Input.GetAxis("Mouse ScrollWheels");

        if (mouseScroll == 0)
        {
            return;
        }

        int addValue = 1;

        if (isSnap && currentSnapInterval != 0)
        {
            addValue = Constant.oneMeasureCount / currentSnapInterval;

            if (_playTimingCount % addValue != 0)
            {
                _playTimingCount = (_playTimingCount / addValue) * addValue;
            }
        }

        if (mouseScroll > 0)
        {
            _playTimingCount += addValue;
        }
        else if (mouseScroll < 0)
        {
            _playTimingCount -= addValue;
        }

        ChartStruct chart = chartData.GetSelectingChart();

        _playTimingCount = Mathf.Clamp(_playTimingCount, minTimingCount, chart.chartLength);
        _showTimingCount = Clac.ShowTimingCount(_playTimingCount, chart.chartEffecters);

        _playTime = Clac.TimeByTimingCount(
            count: _playTimingCount,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            musicOffset: chart.musicOffset,
            bpm: chart.bpm,
            tempoChanger: chart.tempoChangers
            );

        _measureCount = Clac.MeasureByTimingCount(_playTimingCount, chart.beat, chart.beatParam, chart.tempoChangers);

        needsClacCount   = false;
        timeSlider.value = _playTime;
    }
    public void Init(ChartStruct chart)
    {
        flameRate = Application.targetFrameRate;
        _playTime = _startMusicOffset;

        _playTimingCount = Clac.TimingCountAndBeat(
            time: _playTime - chart.musicOffset,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            bpm: chart.bpm,
            nowBpm: ref _nowBpm,
            nowBeat: ref _nowBeat,
            tempoChanger: chart.tempoChangers
            );

        _showTimingCount = Clac.ShowTimingCount(
            timingCount: _playTimingCount,
            chartEffecters: chart.chartEffecters
            );
    }
Esempio n. 11
0
    public IEnumerator GenerateNotes(RuleStruct gaugeRule, ChartStruct chart, GameObject[] laneObjs)
    {
        Array.Resize(ref notes, laneObjs.Length);

        int[] laneNoteCount = new int[notes.Length];

        for (int i = 0; i < notes.Length; i++)
        {
            Array.Resize(ref notes[i], 1);
            laneNoteCount[i] = 0;
        }

        float nextFlameTime = Clac.NextFlameTime();
        int   notesCount    = 0;

        foreach (NotesStruct note in chart.notes)
        {
            // 処理時間がフレームレートの80%を超えたら次のフレームへ
            if (Time.realtimeSinceStartup >= nextFlameTime)
            {
                yield return(null);

                nextFlameTime = Clac.NextFlameTime();
            }

            int lane = note.lane - 1;

            Transform   noteObj       = GenerateNote(note.type, note.lane, laneObjs).transform;
            NormalNotes generateNotes = noteObj.GetComponent <NormalNotes>();
            // 光るノーツならマテリアルを変える
            Material noteMaterial = note.shiny ? shinyMaterial : null;
            generateNotes.Init(note, chart, noteMaterial);

            _totalCombo      += generateNotes.ClacComboCount();
            _totalGaugeCount += generateNotes.ClacGaugeCount(gaugeRule);

            Array.Resize(ref notes[lane], laneNoteCount[lane] + 1);
            notes[lane][laneNoteCount[lane]] = generateNotes;

            laneNoteCount[lane]++;
            notesCount++;
        }
    }
Esempio n. 12
0
    public void Init()
    {
        flameRate = Application.targetFrameRate;

        ChartStruct chart = chartData.GetSelectingChart();

        _playTimingCount = Clac.TimingCount(
            time: _playTime - chart.musicOffset,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            bpm: chart.bpm,
            nowBpm: ref _nowBpm,
            tempoChanger: chart.tempoChangers
            );

        SetSnap(snapToggle.isOn);
        SetSnapInterval(intervalDD.value);
        SetTimeLength();
        SetTimingCount(_playTime);
    }
    public virtual void Init(NotesStruct notesStruct, ChartStruct chartStruct, Material shinyMaterial = null)
    {
        timingCount     = notesStruct.timing;
        showTimingCount = Clac.ShowTimingCount(timingCount, chartStruct.chartEffecters);
        TimingFlame     = Clac.TimingFlame(timingCount, chartStruct);

        if (notesStruct.lane > 0)
        {
            lane = notesStruct.lane;
        }

        mySpeed = notesStruct.speed;
        IsShiny = notesStruct.shiny;

        if (shinyMaterial != null)
        {
            spriteRenderer.material = shinyMaterial;
        }
    }
Esempio n. 14
0
    public IEnumerator Init(ChartStruct chart, Transform laneParent)
    {
        float nextFlameTime = Clac.NextFlameTime();
        int   measureLength = Clac.MeasureByTimingCount(chart.chartLength, chart.beat, chart.beatParam, chart.tempoChangers);

        System.Array.Resize(ref measureLines, measureLength);

        for (int i = 0; i < measureLines.Length; i++)
        {
            measureLines[i] = Instantiate(measureObj, laneParent);
            int measureTiming = Clac.TimingCountByMeasure(i, chart.beat, chart.beatParam, chart.tempoChangers);
            measureLines[i].Init(Clac.ShowTimingCount(measureTiming, chart.chartEffecters), measureTiming);
            // 処理時間がフレームレートの80%を超えたら次のフレームへ
            if (Time.realtimeSinceStartup >= nextFlameTime)
            {
                yield return(null);

                nextFlameTime = Clac.NextFlameTime();
            }
        }
    }
Esempio n. 15
0
    public void SetTimeLength()
    {
        ChartStruct chart = chartData.GetSelectingChart();

        _timeLength = Clac.TimeByTimingCount(
            count: chart.chartLength,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            musicOffset: chart.musicOffset,
            bpm: chart.bpm,
            tempoChanger: chart.tempoChangers
            );

        minTimingCount = Clac.TimingCount(
            time: 0 - chart.musicOffset,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            bpm: chart.bpm,
            nowBpm: ref _nowBpm,
            tempoChanger: chart.tempoChangers
            );

        timeSlider.minValue = 0;
        timeSlider.maxValue = timeLength;
    }
    public void UpdateTime(ChartStruct chart)
    {
        _playTime  += Time.deltaTime;
        _playFlame  = Mathf.RoundToInt(_playTime * flameRate) + StaticValue.judgeOffset;
        _deltaFlame = _playFlame - beforeFlame;
        beforeFlame = _playFlame;

        _playTimingCount = Clac.TimingCountAndBeat(
            time: _playTime - chart.musicOffset,
            oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
            bpm: chart.bpm,
            nowBpm: ref _nowBpm,
            nowBeat: ref _nowBeat,
            tempoChanger: chart.tempoChangers
            );

        _showTimingCount = Clac.ShowTimingCount(
            timingCount: _playTimingCount,
            chartEffecters: chart.chartEffecters
            );

        _measureCount = Clac.MeasureByTimingCount(_playTimingCount, chart.beat, chart.beatParam, chart.tempoChangers);
    }
    public void MoveMeasure()
    {
        ChartStruct chart = chartDataController.GetSelectingChart();

        MoveMeasure(notesController.noteSpeed, chart);
    }
 public virtual void Init(NotesStruct notesStruct, ChartStruct chartStruct, Material shinyMaterial = null, int noteNumber = 0)
 {
     Init(notesStruct, chartStruct, shinyMaterial);
 }
 public void RefreshCount(ChartStruct chartStruct)
 {
     showTimingCount = Clac.ShowTimingCount(timingCount, chartStruct.chartEffecters);
 }
 public override void Init(NotesStruct notesStruct, ChartStruct chartStruct, Material shinyMaterial = null, int noteNumber = 0)
 {
     base.Init(notesStruct, chartStruct, shinyMaterial, noteNumber);
     NoteNumber = noteNumber;
 }
Esempio n. 21
0
 public override void Init(NotesStruct notesStruct, ChartStruct chartStruct, Material shinyMaterial = null)
 {
     base.Init(notesStruct, chartStruct, shinyMaterial);
     totalJudgeCount = (EndTimingFlame - TimingFlame) / Constant.holdJudgeFlame;
 }
    private IEnumerator GameInit()
    {
        chartEle   = SetChartDifficlty(StaticValue.difficulty);
        gaugeRule  = (int)StaticValue.gaugeRule;
        noteSpeed  = StaticValue.noteSpeed;
        judgeStyle = StaticValue.judgeStyle;
        System.Array.Resize(ref uiData.judgeCount, timingRange[(int)judgeStyle].judges.Length);

        ChartStruct chart = musicStruct.charts[chartEle];

        timeController.Init(chart);
        tutorialController.Init(isTutorial);
        // 各コントローラーの初期化処理を非同期で行う
        yield return(StartCoroutine(notesController.GenerateNotes(gaugeStructs.gaugeRules[gaugeRule], chart, laneObjs)));

        yield return(StartCoroutine(measureController.Init(chart, laneObjsParent)));

        yield return(StartCoroutine(inputController.Init(laneObjs.Length)));

        yield return(StartCoroutine(starCountroller.Init()));

        yield return(StartCoroutine(particleController.Init()));

        yield return(StartCoroutine(LoadAudioData(musicStruct.musicFileName, loadName)));

        RenderSettings.skybox = backGroundData.backGroundMaterials[(int)musicStruct.backGroundType];

        notesController.UpdateManage(noteSpeed);
        measureController.MoveMeasure(noteSpeed, chart);

        // ScoreCountの計算
        uiData.maxScoreCount   = notesController.totalCombo * timingRange[(int)judgeStyle].judges[(int)JudgeType.Just].scoreCount;
        uiData.totalGaugeCount = notesController.totalGaugeCount;
        uiData.noteSpeed       = noteSpeed;
        uiData.bpm             = chart.bpm;
        uiData.gaugePer        = gaugeStructs.gaugeRules[gaugeRule].startPar;

        growAnim.SetFloat("Speed", chart.bpm / 120);

        musicSource.volume = musicStruct.musicVolume;

        uiCountroller.Init(
            uiData: uiData,
            gaugeRule: gaugeStructs.gaugeRules[gaugeRule],
            trackCount: StaticValue.trackCount,
            musicName: musicStruct.musicName,
            artistName: musicStruct.composer,
            difficulty: chart.difficulty,
            level: chart.level,
            timeLength: Clac.TimeByTimingCount(
                count: chart.chartLength,
                oneBeatCount: Clac.OneBeatCount(chart.beat, chart.beatParam),
                musicOffset: chart.musicOffset,
                bpm: chart.bpm,
                tempoChanger: chart.tempoChangers),
            isDemo: isDemoPlay,
            isTutorial: isTutorial
            );

        yield return(null);

        System.GC.Collect();
        yield return(null);

        isInitFinish = true;

        cookpitUIAnim.SetBool("Show", true);

        if (isDemoPlay || isTutorial)
        {
            // デモプレイ、チュートリアルはすぐに始める
            cookpitUIAnim.SetTrigger("NonAnim");
            isStarting = true;
        }
        else
        {
            keyInfoAnim.SetBool("KeyShow", true);
            yield return(new WaitForSeconds(1.0f));
        }
    }