Пример #1
0
 // マウスupで音量を再設定
 private void sliderVolume_MouseUp(object sender, MouseEventArgs e)
 {
     mm.Volume = sliderVolume.Value;
     selectBGM.Dispose();
     selectBGMplayer.Stop();
     selectBGMplayer.Dispose();
     selectBGM        = new SpStream(Properties.Resources.BGMselect1);
     selectBGM.Volume = sliderVolume.Value;
     selectBGMplayer  = new System.Media.SoundPlayer(selectBGM);
     selectBGMplayer.PlayLooping();
 }
Пример #2
0
        // キャラ選択画面
        private void Form1_Load(object sender, EventArgs e)
        {
            // ループBGMの再生開始
            selectBGM          = new SpStream(Properties.Resources.BGMselect1);
            selectBGM.Volume   = mm.Volume;
            sliderVolume.Value = mm.Volume;
            selectBGMplayer    = new System.Media.SoundPlayer(selectBGM);
            selectBGMplayer.PlayLooping();

            // カーソルをオリジナルのものに変更
            System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
            Cursor myCursor = new Cursor(asm.GetManifestResourceStream(asm.GetName().Name + ".Resources.hand_cursor.cur"));

            this.Cursor = myCursor;

            // キャラクタの初期化
            mm.chara = 0;
        }
Пример #3
0
        // エレ子選択
        private async void PictEreBig_Click(object sender, EventArgs e)
        {
            // エレ子(1)を選択
            mm.chara = 1;

            // ループBGMをとめる
            selectBGMplayer.Stop();
            selectBGMplayer.Dispose();

            // リソースを取得して選択終了BGM再生
            selectBGM.Dispose();
            selectBGM        = new SpStream(Properties.Resources.BGMselect2);
            selectBGM.Volume = sliderVolume.Value;
            selectBGMplayer  = new System.Media.SoundPlayer(selectBGM);
            selectBGMplayer.Play();

            // エレ子よろこんで選択画面終了
            Speach("selectE");
            await EreSelected();

            selectBGMplayer.Dispose();
            this.Close();
        }
Пример #4
0
        // ゲームメインルーチン
        private async void PlayGame()
        {
            // ボタンを非表示
            ButtonChange.Visible    = false;
            ButtonChallenge.Visible = false;
            RestartButton.Visible   = false;
            OneMoreButton.Visible   = false;

            // ラベル表示
            LabelDealer.Text = charaname[chara];
            LabelPlayer.Text = "あなた";
            DispLabelResult();

            // キャラによるループBGMとイメージを設定
            switch (chara)
            {
            case 0:
                this.Close();       // 誰も選んでいない
                break;

            case 1:                 // エレ子とゲーム
                playBGM         = new SpStream(Properties.Resources.BGMere1);
                playBGM.Volume  = Volume;
                CharaPict.Image = Properties.Resources.ere_play;
                break;

            case 2:                 // むいとゲーム
                playBGM         = new SpStream(Properties.Resources.BGMmui1);
                playBGM.Volume  = Volume;
                CharaPict.Image = Properties.Resources.mui_play;
                break;

            default:                // ここには来ないはずだけど
                this.Close();
                break;
            }

            // リソースを取得してループBGM再生

            playBGMplayer = new System.Media.SoundPlayer(playBGM);
            playBGMplayer.PlayLooping();

            // キャラの2枚(乱数)
            CharaCard[0] = r.Next(0, 25);
            CharaCard[1] = (CharaCard[0] + r.Next(1, 24)) % 26;

            // キャラカードの表示(1枚は表、1枚は裏)
            CardPictChara1.Image = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(card[(int)(CharaCard[0] / 13) + 2, (int)(CharaCard[0] % 13)]);
            CardPictChara2.Image = (System.Drawing.Image)Properties.Resources.card_ura;

            // プレイヤーの2枚(乱数)
            PlayerCard[0] = r.Next(0, 25);
            PlayerCard[1] = (PlayerCard[0] + r.Next(1, 24)) % 26;

            // プレイヤーカードの表示(2枚とも表)
            CardPictPlayer1.Image = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(card[(int)(PlayerCard[0] / 13), (int)(PlayerCard[0] % 13)]);
            CardPictPlayer2.Image = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(card[(int)(PlayerCard[1] / 13), (int)(PlayerCard[1] % 13)]);

            // 1/52の確率でプレイヤーにジョーカー
            if (r.Next(0, 52) == 0)
            {
                if (r.Next(0, 2) == 0)
                {
                    PlayerCard[0]         = -1;
                    CardPictPlayer1.Image = (System.Drawing.Image)Properties.Resources.joker;
                }
                else
                {
                    PlayerCard[1]         = -1;
                    CardPictPlayer2.Image = (System.Drawing.Image)Properties.Resources.joker;
                }
            }
            // キャラセリフ
            await Speak(TalkPlay[chara - 1]);

            // ボタンの表示(マルチスレッド対応メイン)
            if (this.InvokeRequired)
            {
                this.Invoke(new Action(this.DispButtonSub));
            }
            else
            {
                ButtonChange.Visible    = true;
                ButtonChallenge.Visible = true;
            }
        }
Пример #5
0
        // 勝負ボタンが押されたら
        private async void ButtonChallenge_Click(object sender, EventArgs e)
        {
            int i;
            int chara_pt;           // キャラの値
            int player_pt;          // プレイヤーの値

            // ボタン関係を非表示
            ButtonChange.Visible    = false;
            ButtonChallenge.Visible = false;

            // カードを開ける効果音
            Speak("cardOpen");

            // キャラカードをターン
            for (i = 0; i <= 10; i++)
            {
                CardPictChara2.Width = (int)(78 * (10 - i) / 10);
                await Task.Delay(50);
            }
            CardPictChara2.Image = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(card[(int)(CharaCard[1] / 13) + 2, (int)(CharaCard[1] % 13)]);
            for (i = 0; i <= 10; i++)
            {
                CardPictChara2.Width = (int)(78 * i / 10);
                await Task.Delay(50);
            }

            // 得点計算
            chara_pt         = CalcPoint(CharaCard[0] % 13 + 1, CharaCard[1] % 13 + 1);
            player_pt        = CalcPoint(PlayerCard[0] % 13 + 1, PlayerCard[1] % 13 + 1);
            LabelDealer.Text = charaname[chara] + ":" + chara_pt.ToString();
            LabelPlayer.Text = "あなた:" + player_pt.ToString();

            // ループBGMをとめる
            playBGMplayer.Stop();
            playBGMplayer.Dispose();

            // リソースを取得してゲーム終了BGM再生
            if (chara == 1)
            {
                playBGM        = new SpStream(Properties.Resources.BGMere2);
                playBGM.Volume = Volume;
            }
            else
            {
                playBGM        = new SpStream(Properties.Resources.BGMmui2);
                playBGM.Volume = Volume;
            }
            playBGMplayer = new System.Media.SoundPlayer(playBGM);
            playBGMplayer.Play();

            // 勝敗判定
            if (PlayerCard[0] == -1 || PlayerCard[1] == -1)
            {
                result[chara, 0]++;
                DispLabelResult();
                LabelPlayer.Text = "あなた:Joker";
                await YouWin();
            }
            else if (chara_pt < player_pt)
            {
                result[chara, 0]++;
                DispLabelResult();
                await YouWin();
            }
            else if (chara_pt == player_pt)
            {
                result[chara, 2]++;
                DispLabelResult();
                await YouDraw();
            }
            else
            {
                result[chara, 1]++;
                DispLabelResult();
                await YouLose();
            }
            OneMoreButton.Visible = true;
            RestartButton.Visible = true;
        }