§9 シューティング・ゲーム(2)1 | プログラミング実習 |
簡単なシューティング・ゲームのプログラムについて学習する。
【1】 プログラム作成の準備
操作 1 前回の実習で作成したプロジェクト名「実習8シューティング」を開く。フォーム(Form1)のTextプロパティを「実習8シューティングB」に変更する。
【2】 得点の表示
UFOを爆破したとき、得点が10点加算されるようにする。得点はラベルで表示する。
操作 2 ラベルオブジェクトを配置し、プロパティを次のように設定する。
※ 点数は、5けたで表示させることにする。
(Name) Label1 Text 00000 Location 740, 10
操作 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
§9 シューティング・ゲーム(2)1 | Copyright©2008 Hiroshi Masuda |