ランキングはこちらをクリック! にほんブログ村 ゲームブログ ゲーム制作へ ブログランキング【くつろぐ】

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

=第30話=「正解は・・・」画面を作りましょう

さてさて答えの値を選択するところまで作成できましたので、
次はその選択した値が正解か不正解か判定するところを作成しましょう。

1.Form1の「フォームデザイナ」ウィンドウの
 「MainTab」部分を右クリックし「タブの追加」をクリックして
 「TabPage6」を追加しましょう。

2.「TabPage6」に正解は文字を配置しましょう。

「Label」コントロール
(Name):Label8
Font-Size:72
ForeColor:Blue
Text:正解は

nttadamoji-038.gif


3.Form1の「SceneChange」プロシージャの「Select」文に
 [正解は]シーン変更処理のコードを追加します。




Case 6 '[正解は]シーン変更処理
'表示用にタイマーをセット(3秒間表示)
Me.Timer1.Interval = 3000
Me.Timer1.Enabled = True

'タブのページを切り替える
Me.MainTab.SelectedIndex = intScene - 1




4.Form1の「SceneProc」プロシージャの「Select」文に
 [正解は]シーン表示処理のコードを追加します。




Case 6 '[正解は]シーン表示処理

'次のシーンへ
Call SceneChange(intScene + 1)




※それではデバッグ開始を実行してみましょう!

nttadamoji-039.gif

答え入力画面で答えを入力後に正解は画面が表示されましたね。

次回は、回転した文字を正しい角度で表示する処理を実装していきます。



スポンサーサイト

テーマ : フリーゲーム - ジャンル : ゲーム

=第29話=答え入力画面を作りましょう

前回まででゲームで遊ぶ画面までできました。
しかしまだゲームの結果を判定して結果を表示する処理を実装していません。
そのあたりを作っていきましょう。それではさっそく。


1.Form1の「フォームデザイナ」ウィンドウの「MainTab」部分を右クリックし
 「タブの追加」をクリックして「TabPage5」を追加しましょう!

2.「TabPage5」に文字と答え入力ボタンを配置しましょう!
 以下の値で5つのコントロールを配置してください。

「Label」コントロール
(Name):Label8
Font-Size:36
ForeColor:Green
Text:正しい文字の数は?

「Button」コントロール
(Name):btnAnswer1
BackColor:White
Font-Size:36
Text:A1

「Button」コントロール
(Name):btnAnswer2
BackColor:White
Font-Size:36
Text:A2

「Button」コントロール
(Name):btnAnswer3
BackColor:White
Font-Size:36
Text:A3

「Button」コントロール
(Name):btnAnswer4
BackColor:White
Font-Size:36
Text:A4

nttadamoji-035.gif

3.MainFormクラスに答え入力の値を保持する変数
 「intKotae」をコードに追加します!

--------------------------------------------------

'答え入力値の変数
Private intKotae As Integer

--------------------------------------------------

4.Form1の「SceneChange」プロシージャの「Select」文に
 [答え入力]シーン変更処理のコードを追加します!

【ちょっと説明。がんばって読んでね】
この処理では、乱数(ランダムに決定される数値)を発生させて、
その値を元に答えの候補のパターンを決定します。

 ゲームにとって乱数はとても便利ですね。
 プログラムは作ったとおりに動作するので
 作者にとっては動作が予測できますが、
 乱数をつかってその結果に応じて処理が決定されるのであれば
 作者であっても予測できません。
 自分でつくっても自分で楽しめるとはなんて素晴らしいのでしょう。
 その乱数を活かすも殺すもアイデア次第ですね。

話がすこしそれましたので戻します。
正解の値が7の場合、7から3を引いた値である4を先頭に
[4,5,6,7][5,6,7,8][6,7,8,9][7,8,9,10]の4パターンの
いずれかをランダムに決定します。

しかし、このアルゴリズムだと正解の値が1の場合、
1から3を引いた値である-2を先頭にすると
[-2,-1,0,1][-1,0,1,2][0,1,2,3][1,2,3,4]となってしまい、
答えとしてはありえないパターンが出来てしまいます。

この問題に対応するためは、問題となる答えの候補のパターンが
決まらないよう、乱数の最小値と最大値を決定する処理を加えます。

nttadamoji-036.gif


--------------------------------------------------

Case 5 '[答え入力]シーン変更処理

'答えを四択で表示
'乱数の取得範囲の最小値と最大値を計算
Dim min As Integer = intOmote - 3
Dim max As Integer = intOmote
'最小値がゼロ未満の場合は最小値をゼロに
If min < 0 Then
min = 0
End If
'最大値が9を超える場合は最大値を9に
If max > 12 - 3 Then
max = 12 - 3
End If
'範囲を指定して乱数を取得
Dim rnd As New System.Random()
Dim idx As Integer = rnd.Next(min, max + 1)
'btnAnswer1~4のTextに答え入力の値を設定
For i As Integer = 0 To 3
Me.TabPage5.Controls("btnAnswer" & i + 1).Text = idx + i
Next

'タブのページを切り替える
Me.MainTab.SelectedIndex = intScene - 1

--------------------------------------------------

5.答え入力ボタンである「btnAnswer1」をダブルクリックして、
 「btnAnswer_Click」イベントプロシージャにコードを追加します!


--------------------------------------------------

Private Sub btnAnswer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnswer1.Click, btnAnswer2.Click, btnAnswer3.Click, btnAnswer4.Click

'答えの数値を取得
Dim btn As Button = CType(sender, Button)
intKotae = Convert.ToInt32(btn.Text)

'次のシーンへ
Call SceneChange(intScene + 1)

End Sub

--------------------------------------------------

「Handles btnAnswer1.Click」の後に「btnAnswer2.Click…」
を入力し忘れないよう注意してください。
この記述を加えることによって、「btnAnswer2~4」を
クリックした場合の処理も行ないます。
「btnAnswer1」だけの処理では無いことを表したいので、
プロシージャ名を「btnAnswer1_Click」から
「btnAnswer_Click」に変更してください。

プロシージャの引数「sender」には、
クリックされたボタンの情報が入っています。
ここでは、クリックされた「btnAnswer1~4」ボタンの
Textの値を、変数「intKotae」に代入しています。

※それではデバッグ開始を実行してみましょう!

nttadamoji-037.gif

 終了画面の表示後に答え入力画面が表示されましたね。
 正解のボタンがどの位置に表示されるかが
 ランダムで決まることを確認してください。

テーマ : フリーゲーム - ジャンル : ゲーム

=第28話=終了画面を作りましょう

しばらくの間更新が滞っていましたが更新します。
世間は不景気ですね。
私は今社会人なのですが社内のお金にならない仕事をしています。
「あー仕事が何もないからやらされてるんだろうなー(涙)
そろそろ危ないかなー。。。」
ではそんななかゲーム作成の続きといきましょう。


1.Form1の「フォームデザイナ」ウィンドウの「MainTab」部分を右クリックし
 「タブの追加」をクリックして「TabPage4」を追加しましょう!

2.「TabPage4」に終了文字を配置しましょう

「Label」コントロール
(Name):Label7
Font-Size:72
ForeColor:Red
Text:終了

nttadamoji-033.gif

3.Form1の「SceneChange」プロシージャの「Select」文に
  [終了]シーン変更処理のコードを追加します。

--------------------------------------------------

Case 4 '[終了]シーン変更処理

'表示用にタイマーをセット(3秒間表示)
Me.Timer1.Interval = 3000
Me.Timer1.Enabled = True

'タブのページを切り替える
Me.MainTab.SelectedIndex = intScene - 1

--------------------------------------------------

4.Form1の「SceneProc」プロシージャの「Select」文に
[終了]シーン表示処理のコードを追加します。

--------------------------------------------------

Case 4 '[終了]シーン表示処理

'次のシーンへ
Call SceneChange(intScene + 1)

--------------------------------------------------

※デバッグ開始を実行してみましょう!
nttadamoji-034.gif


文字探し表示画面の表示後に終了画面が表示されました。

テーマ : フリーゲーム - ジャンル : ゲーム


プロフィール

ウルトラパワー

Author:ウルトラパワー
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ

相互リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。