UFOゲームの制作 VB6
 (4) タイマーによる処理 前へ 目次へ 次へ 

 1. ゲームのメインルーチン

 メインルーチン(ゲーム中の処理)は、(a) 敵・UFO移動、自機弾・敵弾移動、(b) 敵弾発射、(c) UFO発生(出現)、(d) 弾当たり判定(敵爆破と自機爆破)、(e) ゲームオーバー判定、などの処理をタイマーで一定時間ごとに実行する。
 各処理を一カ所に書くと見にくくなるのでそれぞれプロシージャとして作成し、タイマーのサブプロシージャから呼び出すことにする。

・プログラム処理概要

Private Sub Timer1_Timer()
'ゲームのメイン処理
    '自機弾移動処理
    '敵移動処理
    '敵弾発射と敵弾移動処理
    'UFO出現とUFO移動処理
    '当たりの判定
    '爆破図表示
    'ゲームオーバー判定
    'ゲームクリア判定
End Sub

 ここで示した処理(プロシージャ)の分け方は一例であるが、この形でプログラムを進めていくことにする。

 

 2. 自機弾移動処理

 自機弾imgTama1はコントロール配列でimgTama1(0), imgTama1(1),・・・,imgTama1(MaxTama)のようにMaxTama個用意している。発射された自機弾はVisibleプロパティがTrue、発射されていなければFalseとなっている。自機弾をウィンドウの下から上へ移動させるには、自機弾のTopプロパティの値を減らしていけばよい。
 自機弾移動の処理はサブプロシージャIdouとして作成する。

・プログラムリスト

Private Sub Timer1_Timer()
'ゲームのメイン処理
    Idou        '自機弾移動処理
    '敵移動処理
    '敵弾発射と敵弾移動処理
    'UFO出現とUFO移動処理
    '当たりの判定
    '爆破図表示
    'ゲームオーバー判定
    'ゲームクリア判定
End Sub

Private Sub Idou()
'自機弾 移動処理
    Dim n As Integer
    For n = 0 To MaxTama    '自機弾数(MaxTama個分)を調べる
        If imgTama1(n).Visible = True Then     '自機弾表示ONのものだけ
            imgTama1(n).Top = imgTama1(n).Top - Dy * 4  '4倍の早さで移動
            If imgTama1(n).Top < 0 Then        '自機弾最上部到達
                imgTama1(n).Visible = False        '自機弾表示OFF
            End If
        End If
    Next n
End Sub

 自機弾の移動スピード(移動間隔)は基準移動量Dyの4倍としている。


 実行してスペースキーを押すと自機弾(赤色)が自機から発射される。ただし、ウィンドウ上には最大3発だけしか現れない。

 (4) タイマーによる処理 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system