クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Visual Studioの教科書】C#でゲーム作り実践編(1):占いゲーム作りで肩慣らし

C#でのゲーム作り実践編です。

今回は占い編で、これはかなり簡単に作れる部類のものです。とっかかりとしては、このへんから始めるのがおすすめです。

占いゲーム

Omikuji - Daikichi!!!

占いゲームは、ただ押すだけのおみくじタイプ、生年月日や血液型を指定して判断するタイプが代表的なものでしょう。

 

最近では、手をカメラにかざすだけで手相を自動認識して占うものもありますが、ここではそこまではやりません。

 

しかし、フォームにボタンを配置してプログラムを書くというシンプルな流れを1通り把握できると思います。

 

下準備

まずは、「C#」で「ウィンドウズフォームアプリケーション」を作成します。

アプリ名は適当につけておきましょう。

f:id:apicode:20200709101345p:plain

 

ツールボックスからボタン(Button)とテキスト(Textbox)を選んでそれぞれ1つづつフォーム上に配置します。

f:id:apicode:20200709101838p:plain

 

ボタンを選んで「Text」のプロパティを「おみくじを引く」に変更。するとボタン上の文字も変わります。

f:id:apicode:20200709101944p:plain

 

テキストボックスは「Mulitiline」のプロパティを「True」にしておきます。

これで複数行の文字データが扱えるようになり、テキストボックスのサイズを引き延ばせるようになります。

f:id:apicode:20200709102109p:plain

 

プログラム

今回のプログラムの基本的な考え方は、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;
}

 

 

実行

あとは「開始」ボタンで実行します。

f:id:apicode:20200709103141p:plain

 

「おみくじをひく」ボタンを押すと結果がテキスト欄に出てきます。何度も押すと、ランダムに結果が変わることがわかります。

f:id:apicode:20200709103055p:plain

 

アレンジ

プロトタイプ(原型)はできましたが、このままでは100人中100人が「面白くない」ということでしょう。

 

そこで、画像やサウンドを付け加えてインパクトをアップします。

 

まず大吉、小吉、凶にみあうようなWAVファイルを魔王魂あたりからダウンロードしておきます。

 

https://maoudamashii.jokersounds.com/list/se2.html

f:id:apicode:20200709104040p:plain

 

画像も入れましょう。

フォームにPictureBoxを配置しておきます。

f:id:apicode:20200709104744p:plain

 

おみくじの絵も入手しましょう。

https://www.irasutoya.com/search?q=%E3%81%8A%E3%81%BF%E3%81%8F%E3%81%98

f:id:apicode:20200709104541p:plain

 

サウンドファイルや画像ファイルを準備できたら、プログラムも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;

 

 

後は実行してみましょう。

最初に作ったやつよりは、もうちょい「らしさ」はアップしてると思います。

f:id:apicode:20200709105029p:plain

 

 

 

 

C#でのゲーム作りは以下参照ください。

www.kyoukasho.net

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ