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

 8. 敵弾の当たり判定

 敵弾の当たり判定処理もサブプロシージャAtariHanteiの中に入れる。
 自機が当てられたとき自機があれば、自機弾と敵弾をすべて消してゲームを継続する。

Private Sub AtariHantei()
'当たりの判定
    Dim flag As Integer
    Dim n As Integer, nn As Integer
    '- - - - - - - - - - - - - - -
    '自機弾が敵に当たる(敵爆破フラグBakuF()を2に設定する)
      <<省略>>
    '- - - - - - - - - - - - - - -
    '敵または敵弾が自機に当たる
    flag = 0
    For n = 0 To MaxTeki    '敵の数(MaxTeki個分)を調べる
        '敵表示ON かつ 当たり ならば 爆破設定
        If imgTeki(n).Visible = True And isAtari(imgTaihou, imgTeki(n)) = True Then
            flag = 1    'フラグ設定
            Exit For
        End If
        '敵弾表示ON かつ 当たり ならば 爆破設定
        If imgTama2(n).Visible = True And isAtari(imgTaihou, imgTama2(n)) = True Then
            flag = 1    'フラグ設定
            Exit For
        End If
    Next n
    If flag = 1 Then        '当たり(自機爆破)処理
        TaihouNokori = TaihouNokori - 1     '自機残数を1減
        TaihouNokoriHyouji TaihouNokori     '自機残数の表示
        For n = 0 To MaxTeki    '敵弾を全部消す
            imgTama2(n).Visible = False     '敵弾表示OFF
        Next n
        For n = 0 To MaxTama    '自機弾を全部消す
            imgTama1(n).Visible = False     '自機弾表示OFF
        Next n
        With imgTaihou          '自機を中央に配置
            .Left = Form1.ScaleWidth / 2
            .Top = Form1.ScaleHeight - imgTaihou.Height * 1.5
        End With
        If TaihouNokori <> -1 Then
            MsgBox "再スタート  OK ?"
        End If
    End If
End Sub

 実行して敵弾に当たると自機が1つずつ減る。まだ、敵をすべて爆破してもゲームは続く。


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

 

 

inserted by FC2 system