クリップボード履歴ソフトCliborを公開中!

VBでゲームを作ろう9

Visual Basicでゲームを作ろう9

最後にそれぞれの全コードを示します。

メニュー画面のコード

Public Class F_Menu
' 「終了」ボタンクリック
Private Sub B_Close_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Close.Click
' メニュー画面を閉じる
Me.Close()
End Sub
' 初級ボタンクリック
Private Sub B_Syokyu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Syokyu.Click
F_Main.Height = 400    ' フォームの高さ
F_Main.Width = 400     ' フォームの幅
F_Main.EnmTim = 1000   ' 敵の動く速度
F_Main.Enms = 20       ' 敵の数
F_Main.GmTim = 10000   ' 制限時間
F_Main.FrmIni()        ' 難易度初期化
F_Main.Show()
Me.Hide()
End Sub
' 中級ボタンクリック
Private Sub B_Chukyu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Chukyu.Click
F_Main.Height = 500    ' フォームの高さ
F_Main.Width = 700     ' フォームの幅
F_Main.EnmTim = 800    ' 敵の動く速度
F_Main.Enms = 30       ' 敵の数
F_Main.GmTim = 15000   ' 制限時間
F_Main.FrmIni()        ' 難易度初期化
F_Main.Show()
Me.Hide()
End Sub
' 上級ボタンクリック
Private Sub B_Jyokyu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Jyokyu.Click
F_Main.Height = 600    ' フォームの高さ
F_Main.Width = 800     ' フォームの幅
F_Main.EnmTim = 300    ' 敵の動く速度
F_Main.Enms = 40       ' 敵の数
F_Main.GmTim = 20000   ' 制限時間
F_Main.FrmIni()        ' 難易度初期化
F_Main.Show()
Me.Hide()
End Sub
End Class

メイン画面のコード

Public Class F_Main
Dim G_Rnd As New System.Random  ' ランダム変数
Dim Enemies As New ArrayList()  ' 複数の敵を格納する変数
Public Enms As Integer          ' 敵の数
Public EnmTim As Integer        ' 敵の動くスピード(秒数)
Public GmTim As Integer         ' 残り時間(秒数)
' 難易度初期化
Public Sub FrmIni()
' フォームのサイズでコントロールを配置する
P_Enemy.Top = 71 '固定
P_Enemy.Height = Me.Height - 115
P_Enemy.Left = 12 ' 固定
P_Enemy.Width = Me.Width - 30
' 合計得点
L_Sum.Text = "0"
' 敵の動くスピード
T_Enemy.Interval = EnmTim
' 残り時間の初期化
PG_Jikan.Maximum = (GmTim / 1000)
PG_Jikan.Value = PG_Jikan.Maximum
End Sub
' フォームが閉じられる際のイベント
Private Sub F_Main_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
' メニュー画面の表示
F_Menu.Show()
End Sub
' スタートボタンクリック
Private Sub B_Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Start.Click
' スタートボタンを使えなくする
B_Start.Enabled = False
' 敵の作成
Dim i As Integer
' 敵を10体生成します
For i = 0 To Enms - 1
' 配列に敵クラスを生成します。その際にオーナーのパネルとランダム変数を渡します。
Enemies.Add(New CEnemy(Me.P_Enemy, G_Rnd))
' 敵のクリックイベント(倒すイベント)
AddHandler CType(Enemies(i), CEnemy).OnClick, AddressOf EnmOnClick
' ループの中でDoEventsを呼んでおく
System.Windows.Forms.Application.DoEvents()
Next
' タイマーのスタート
T_Enemy.Enabled = True
T_Jikan.Enabled = True
End Sub
' 敵を動かす
Private Sub T_Enemy_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_Enemy.Tick
Dim i As Integer
' 敵の数だけループする
For i = 0 To Enemies.Count() - 1
' 敵の移動イベントを呼ぶ
CType(Enemies(i), CEnemy).MvEnm()
' ループの中でDoEventsを呼んでおく
System.Windows.Forms.Application.DoEvents()
Next
End Sub
' 残り時間を計測する
Private Sub T_Jikan_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_Jikan.Tick
If (PG_Jikan.Minimum) <= (PG_Jikan.Value - 1) Then
' プログレスバーを一つ下げる
PG_Jikan.Value = PG_Jikan.Value - 1
Else
' 終わり
PG_Jikan.Value = PG_Jikan.Minimum
' タイマーを止める
T_Enemy.Enabled = False
T_Jikan.Enabled = False
' メッセージを表示
MsgBox("終了です" & vbCrLf & "あなたの得点は" & L_Sum.Text & "です")
' メイン画面を閉じる
Me.Close()
End If
End Sub
' 敵クリックイベント
Public Sub EnmOnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
' 得点の加算(それぞれの敵の得点を取得する。)
L_Sum.Text = CInt(L_Sum.Text) + CType(sender, CEnemy).GetTokuten
' 敵を倒したイベント(再度敵を出現させる)
Call CType(sender, CEnemy).EnemyDown()
End Sub
End Class
  • Facebook
  • Hatena
  • twitter
  • Google+

サイト内検索

サイトについて

Amunsへ直接のお問い合わせはこちらからContact

寄付のお願い

Cliborはフリーソフトですが寄付歓迎です。 →寄付のお願い
PAGETOP
Copyright © amuns:code All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.