C#でのゲーム作り実践編です。
今回は占い編で、これはかなり簡単に作れる部類のものです。とっかかりとしては、このへんから始めるのがおすすめです。
占いゲーム
占いゲームは、ただ押すだけのおみくじタイプ、生年月日や血液型を指定して判断するタイプが代表的なものでしょう。
最近では、手をカメラにかざすだけで手相を自動認識して占うものもありますが、ここではそこまではやりません。
しかし、フォームにボタンを配置してプログラムを書くというシンプルな流れを1通り把握できると思います。
下準備
まずは、「C#」で「ウィンドウズフォームアプリケーション」を作成します。
アプリ名は適当につけておきましょう。
ツールボックスからボタン(Button)とテキスト(Textbox)を選んでそれぞれ1つづつフォーム上に配置します。
ボタンを選んで「Text」のプロパティを「おみくじを引く」に変更。するとボタン上の文字も変わります。
テキストボックスは「Mulitiline」のプロパティを「True」にしておきます。
これで複数行の文字データが扱えるようになり、テキストボックスのサイズを引き延ばせるようになります。
プログラム
今回のプログラムの基本的な考え方は、0、1,2と3つの数字をランダムに発生させ、その結果に応じて判定結果をテキストボックスに表示するというものです。
ランダムな数値発生をさせるには「Random rnd = new Random();」でランダムを扱うためのオブジェクトを作成。「rnd.Next(3);」で3つの数値をランダムに作ります。
3個のランダムな数値がつくられますが「0」「1」「2」と0を含めた3個になるので注意しましょう。このへんはプログラミングが初めての人には結構鬼門ですが、そういうものとしかいいようがありません。
あとは「if」文でそれぞれの場合の文字を設定し、「textBox1.Text = sResult;」としてテキストボックス内の文字としてセットします。
//ランダムに文字を作る
Random rnd = new Random();
int iRnd = rnd.Next(3);
//判定する
string sResult = "";if(iRnd == 0)
{
sResult = "大吉!今日はいいことがあります。";
}
else if (iRnd == 1)
{
sResult = "小吉!今日はいいことがあります。";
}
else if (iRnd == 2)
{
sResult = "凶!今日は気を付けましょう。";
}textBox1.Text = sResult;
}
実行
あとは「開始」ボタンで実行します。
「おみくじをひく」ボタンを押すと結果がテキスト欄に出てきます。何度も押すと、ランダムに結果が変わることがわかります。
アレンジ
プロトタイプ(原型)はできましたが、このままでは100人中100人が「面白くない」ということでしょう。
そこで、画像やサウンドを付け加えてインパクトをアップします。
まず大吉、小吉、凶にみあうようなWAVファイルを魔王魂あたりからダウンロードしておきます。
https://maoudamashii.jokersounds.com/list/se2.html
画像も入れましょう。
フォームにPictureBoxを配置しておきます。
おみくじの絵も入手しましょう。
https://www.irasutoya.com/search?q=%E3%81%8A%E3%81%BF%E3%81%8F%E3%81%98
サウンドファイルや画像ファイルを準備できたら、プログラムもIF文に応じてそれぞれのサウンドや画像を演出するように変更します。
Random rnd = new Random();
int iRnd = rnd.Next(3);
string sResult = "";if (iRnd == 0)
{
sResult = "大吉!今日はいいことがあります。";
pictureBox1.Image= System.Drawing.Image.FromFile(@"C:/_work/daikichi.png");
SoundPlayer player = new SoundPlayer(@"C:/_work/daikichi.wav");
player.Play();
}
else if (iRnd == 1)
{
sResult = "小吉!今日はいいことがあります。";
pictureBox1.Image = System.Drawing.Image.FromFile(@"C:/_work/shoukichi.png");
SoundPlayer player = new SoundPlayer(@"C:/_work/shoukichi.wav");
player.Play();
}
else if (iRnd == 2)
{
sResult = "凶!今日は気を付けましょう。";
pictureBox1.Image = System.Drawing.Image.FromFile(@"C:/_work/daikichi.png");
SoundPlayer player = new SoundPlayer(@"C:/_work/daikichi.wav");
player.Play();
}textBox1.Text = sResult;
後は実行してみましょう。
最初に作ったやつよりは、もうちょい「らしさ」はアップしてると思います。
C#でのゲーム作りは以下参照ください。