§9 シューティング・ゲーム(2)1 プログラミング実習
 back next 

 簡単なシューティング・ゲームのプログラムについて学習する。

【1】 プログラム作成の準備

操作 1 前回の実習で作成したプロジェクト名「実習8シューティング」を開く。フォーム(Form1)のTextプロパティを「実習8シューティング」に変更する。

 

【2】 得点の表示

 UFOを爆破したとき、得点が10点加算されるようにする。得点はラベルで表示する。

操作 2 ラベルオブジェクトを配置し、プロパティを次のように設定する。

(Name) Label1 Text 00000
Location 740, 10
※ 点数は、5けたで表示させることにする。

操作 3 点数加算はMISILEが当たったときだけであるから、当たり判定のプログラムに点数加算と表示のプログラム(太字)を次のように追加する。

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim tokuten As String
        picUFO.Left = picUFO.Left + picUFO.Width / 3    'UFOの移動
            <<略>>
        '当たり判定
            <<略>>
        picBOMB.Visible = False    'BOMB非表示
        tokuten = Trim(Str(Val(Label1.Text) + 10))    '得点加算
        Label1.Text = Microsoft.VisualBasic.Right("000" & tokuten, 5)    '表示
        End If
    End Sub

※ Label1.Textに得点が文字型のデータで記憶されている。@ Val関数で数値型に変換してから10を加算している[Val(Label1.Text) + 10]。A 加算後、Str関数で文字型に変換している[Str(Val(Label1.Text) + 10)]。B 文字型に変換すると符号"+"が空白文字で付くので、Trim関数で文字列の先頭と末尾に付いている空白を削除する。
Trim(Str(Val(Label1.Text) + 10))   @ A B
※ 得点(数値)の先頭に"0"を付けて5けたで表示する。@ "000"と得点を連結している["000" & tokuten]。A 文字列の末尾(右側)から5文字取り出している。
Microsoft.VisualBasic.Right("000" & tokuten, 5)   @ A
結果 実行してUFOを打ち落とすと得点が加算される。得点は5けたの整数で表示される。
【旧VisualBasicの関数】
 VB6などで使えていた Trim, Str, Val, Rightなどの関数は、互換性のために残されている。これらの関数は、Microsoft.VisualBasic名前空間に用意されているので、正確には次のように記述する。
     Microsoft.VisualBasic.Right( … )
 しかし、Trim,Str,Val関数はMicrosoft.VisualBasic.Trimと自動的に解釈してくれるようである。では、Right関数だけMicrosoft.VisualBasic.Rightと記述しているかは、Rightというプロパティが存在するためRightとだけ記述するとプロパティと解釈されるためである。
 旧VBの関数は、.NET以降、メソッドとして用意されている。
 tokuten = Trim(Str(Val(Label1.Text) + 10))のプログラムはメソッドを使って記述すると次のようになる。
     tokuten = ((Convert.ToInt32(Label1.Text, 10) + 10).ToString).Trim


 back next 
 §9 シューティング・ゲーム(2)1 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system