敵クラスについて
それでは敵クラスを作成します。
クラス作成
メニューの「プロジェクト」→「クラスの追加」をクリックします。
ファイル名は任意で結構ですが、「Class1.vb」のまま追加ボタンを押します。
初期では以下のようになっております。
Public Class Class1
End Class
Class1の部分がクラス名となっておりますので、敵クラス(CEnemy)に名前を変更します。
Public Class CEnemy
End Class
コンストラクタを定義
コンストラクタとデストラクタを定義します。
敵クラスが生成されたときに呼び出されますので、初期化を行います。
以降、以下のように、クラスの中に定義していきます。
Public Class CEnemy
' コンストラクタ
Public Sub New()
End Sub
' デストラクタ
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
End Class
まずはこのクラスで使用する変数を定義します。
' クラス内変数
Private _pbImgEnemy As PictureBox ' 敵の画像
Private _enemyOwner As Object ' 敵が出現するオーナー
Private _rnd As System.Random ' ランダム変数
Private _intTokuten As Integer ' 敵を倒した時の得点
Private _intMvwd As Integer ' 敵が動く際の幅
Private _intMvud As Integer ' 上下左右に動く
Private _intMovePattern As Integer ' 敵のパターン
コンストラクタに引数を二つ追加し、以下のようにコーディングします。
引数は、敵が移動できるコンポーネント(パネル)と、ランダム変数です。
' コンストラクタ
' owner : 敵が出現するオーナー
' rnd : ランダム変数
Public Sub New(ByRef owner As Object, ByRef rand As System.Random)
' 敵の画像を表示する変数を初期化
_pbImgEnemy = New PictureBox
' オーナーの取得
_enemyOwner = owner
' ランダム変数
_rnd = rand
' 敵が動く際の幅の初期化
_intMvwd = 10
' 上下左右に動く
_intMvud = 0
' 敵画像がクリックされたイベント
AddHandler _pbImgEnemy.Click, AddressOf DoClick
' ランダムな場所に出現
_RandPlace()
' オーナーに画像を貼り付け
_enemyOwner.Controls.Add(_pbImgEnemy)
End Sub
DoClickと_RandPlaceメソッドの実装
まずクリックイベントを実装します。
敵画像をクリックされた際に処理するためです。
変数宣言の下あたりにクリックイベントを宣言します。
' クリックイベント
Public Event OnClick(ByVal sender As System.Object, ByVal e As EventArgs)
次にクリックイベントの実装です。
' Clickイベントを発生させる
Public Sub DoClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
RaiseEvent OnClick(Me, e)
End Sub
上記を実装することで、敵画像(_pbImgEnemy)のクリックイベントがこのクラスのクリックイベントになります。
次に敵をランダムな場所に出現するメソッド「_RandPlace」を追加します。
敵自体もランダムに選択されます。ここでは三種類の敵にします。
他のクラスから呼ばれる必要がないのでPrivateにしておきます。
' 敵画像をランダムな場所に作成
Private Sub _RandPlace()
' 出現場所はオーナーの範囲内にする
' 高さ
Dim intTop As Integer = _rnd.Next(_enemyOwner.Size.Height - _pbImgEnemy.Size.Height)
_pbImgEnemy.Top = intTop
' 横
Dim intLeft As Integer = _rnd.Next(_enemyOwner.Size.Width - _pbImgEnemy.Size.Width)
_pbImgEnemy.Left = intLeft
' 敵のパターン(画像と得点)をランダムに指定する
_intMovePattern = _rnd.Next(1, 4)
_pbImgEnemy.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
Select Case _intMovePattern
Case 1
'画像読み込み
_pbImgEnemy.Image = System.Drawing.Image.FromFile("enemy1.gif")
'得点
_intTokuten = 500
Case 2
'画像読み込み
_pbImgEnemy.Image = System.Drawing.Image.FromFile("enemy2.gif")
'得点
_intTokuten = 1000
Case 3
'画像読み込み
_pbImgEnemy.Image = System.Drawing.Image.FromFile("enemy3.gif")
'得点
_intTokuten = 3000
End Select
End Sub
ひとまず敵クラスの初期化の実装はここまでです。
少しコーディングしてきましたが、一行ずつ解読してみてください。
\オススメ/
リンク
リンク
リンク
コメント