示例#1
0
    /// <summary>
    /// 音符のタイプに基づいて曲の変更
    /// </summary>
    /// <param name="type">音符のタイプ</param>
    /// <param name="data">曲情報</param>
    /// <returns></returns>
    public bool ChangeMusic(Notes.MusicType type, MusicList.MusicData data)
    {
        // データがnullだったら
        if (data == null)
        {
            return(false);
        }
        // 音のタイプと曲データが同じものだったら
        if ((nowPlay == type) && (music.clip == data.musicClip))
        {
            // 変更する必要がないので、falseを返す
            return(false);
        }
        // そうでなかったら
        else
        {
            // 曲の停止
            StopMusic();
            // 変更する必要があるので変数を代入する
            nowPlay    = type;
            music.clip = data.musicClip;
            foreach (var startMusic in startMusics)
            {
                // デリゲートを呼ぶ
                startMusic(data);
            }

            // trueを返す
            return(true);
        }
    }
示例#2
0
    /// <summary>
    /// 音楽の停止
    /// </summary>
    public void StopMusic()
    {
        music.Stop();

        foreach (var stopMusic in stopsMusics)
        {
            // デリゲートを呼ぶ
            stopMusic();
        }

        // 音のタイプをNONEにする
        nowPlay = Notes.MusicType.NONE;
    }
示例#3
0
    /// <summary>
    /// 曲情報の取得
    /// </summary>
    /// <param name="type">音符のタイプ</param>
    /// <returns>曲情報</returns>
    public MusicList.MusicData GetMusic(Notes.MusicType type)
    {
        // どの曲を使うかのインデックス
        int index = 0;

        // 音の種類が近づける音だったら
        if (type == Notes.MusicType.ATTRACT)
        {
            index = GetRandom(0, 20);
            temp  = attractMusic.attractMusics[index].musicClip;
            while (true)
            {
                index = GetRandom(0, 20);
                temp  = attractMusic.attractMusics[index].musicClip;
                if (usedAttractClips.IndexOf(temp) == -1)
                {
                    usedAttractClips.Add(temp);
                    return(attractMusic.attractMusics[index]);
                }
            }
        }
        // 音の種類が遠ざける音だったら
        if (type == Notes.MusicType.AWAY)
        {
            index = GetRandom(0, 20);
            temp  = awayMusic.awayMusics[index].musicClip;
            while (true)
            {
                index = GetRandom(0, 20);
                temp  = awayMusic.awayMusics[index].musicClip;
                if (usedAwayClips.IndexOf(temp) == -1)
                {
                    usedAwayClips.Add(temp);
                    return(awayMusic.awayMusics[index]);
                }
            }
        }
        // nullを返す
        return(null);
    }