UFOゲームの制作 VB6
 (2) オブジェクトの初期化(作成) T 前へ 目次へ 次へ 

 1. 敵などの作成

 自機や自機の残り数と得点表示用のラベルを図2-1-1のように配置する処理を作る。
 ゲームの初期状態なので起動時や再スタート時に使うことになるので、サブプロシージャInitGameとしてプログラムし、Form_Loadプロシージャから呼び出すことにする。


図 2-1-1

・プログラムリスト その1
 定数とグローバル変数を定義する。

Option Explicit
'定数
Const MaxTeki = 47      '#1 8列*6行-1=47
Const MaxTaihou = 2     '#1 自機数3個(3-1=2)
Const MaxTama = 2       '#1 自機弾数3個(3-1=2)
'グローバル変数
Dim TaihouNokori As Integer     '#2 自機の数

Private Sub Form_Load()
    '#3 ウインドウサイズの設定(800×600)
    Form1.Height = 12000  'ウィンドウサイズ(幅800*15)
    Form1.Width = 9000    'ウィンドウサイズ(高さ600*15)
 
    Randomize                 '#4 乱数初期化
    TaihouNokori = MaxTaihou  '#5 自機残り数設定
    MakeObject                '#6 オブジェクト(部品)の作成
    InitGame                  '#7 ゲームの初期化
    lblTokuten.Top = 120      '得点表示座標設定
    lblTokuten.Left = Form1.ScaleWidth - lblTokuten.Width - 60
End Sub

#1 MaxTeki に敵の最大数、MaxTaihouに自機の最大数、MaxTamaに自機が発射できる弾の最大数をそれぞれ定義する。自機が発射できる弾数を3発に制限している。すなわち、MaxTama個以上の自機弾を連続して発射できないようにする。

#2 自機の残り数をグローバル変数TaihouNokoriに記憶させる。グローバル変数はこのプログラムのすべてのサブプロシージャとファンクションプロシージャの中で参照することができる変数である。

#3 ゲーム実行時のウィンドウサイズを設定している。VisualBASICではサイズの単位にtwipが使われている。1ピクセル(ドット)は15twipに相当する。   1ピクセル = 15twip

#4 ときどき現れるUFOなどの出現を決めるため乱数を使う予定であるので、ここで乱数を初期化しておく。

#5 グローバル変数TaihouNokoriに自機の残り数を設定する。自機の残り数はやられるたびに1ずつ減っていく。

#6,7 敵はフォーム上に4個しか用意していない。このサブプロシージャMakeObjectで必要な数の部品(オブジェクト)を作成して、各部品を配置するサブプロシージャInitGameを呼び出す。


・プログラムリスト その2(プロシージャMakeObject)

Private Sub MakeObject()
'オブジェクトの作成
    Dim n As Integer
 
    For n = 1 To MaxTeki    '二つ目以降(MaxTeki個分)を作成
        Load imgTeki(n)         '敵作成
        Load imgTama2(n)        '敵弾作成
    Next n
    For n = 1 To MaxTama    '二つ目以降(MaxTama個分)を作成
        Load imgTama1(n)        '自機弾作成
    Next n
End Sub

 プログラム中で部品(オブジェクト)を作成するには、Load命令を使う。それぞれの部品はコントロール配列(部品を配列として扱う)としており、0番目の部品はフォーム上に用意したので、1番目から作成している(For n=1 To ・・・)。

 追加して用意する部品は敵と敵の持ち弾をMaxTeki-1個、自機の弾をMaxTama-1個作成する(1個目は配列0番として作成済み)。

 各部品を配置するサブプロシージャInitGameは、ゲームスタート時、再スタート時に呼び出すので、この中で部品を作成すると、再スタートのときすでに部品が作成されているのでエラーになる。そのため、部品の作成と配置の処理を分けている。

注意】 実行しても、InitGameがないというエラーが出る。InitGameは次ページで作成する。


 (2) オブジェクトの初期化(作成) T 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system