見出し画像

Excel VBAでブロック崩しを作ろう!(初めてのVBAプログラム)第6回

前回は、図形「Block」を作りました。今回は、このブロックにボールが跳ね返るようにします。動作を確認するために、下の壁の跳ね返りは、そのままにしておきます。
本来であれば、ブロックの跳ね返りは、4カ所になります。当然の事ですが、上側と下側、それと、左側と右側です。
しかし、動作が遅くなることと、ブロックはおそらく、横長なので、左右の跳ね返りは、無視することにします。

'BlockSでの反射
  For i = 1 To BlockYoko
    For j = 1 To BlockTate
      If BlockS(i, j).Visible = True Then
        If (Ball.Left + BallDx + Ball.Width / 2 < BlockS(i, j).Left + BlockS(i, j).Width) And _
             (Ball.Left + BallDx + Ball.Width / 2 > BlockS(i, j).Left) Then
          'BlockSの上側での反射
          If (BallDy > 0) And (Ball.Top + Ball.Height + BallDy > BlockS(i, j).Top) And _
             (Ball.Top + BallDy < BlockS(i, j).Top) Then
              BallDy = -BallDy
              BlockS(i, j).Visible = False
          End If
          'BlockSの下側での反射
          If (BallDy < 0) And (Ball.Top + BallDy < BlockS(i, j).Top + BlockS(i, j).Height) And _
             (Ball.Top + Ball.Height + BallDy > BlockS(i, j).Top + BlockS(i, j).Height) Then
              BallDy = -BallDy
              BlockS(i, j).Visible = False
          End If
        End If
      End If
    Next j
  Next i

ここから先は

1,501字
テトリス、オセロなどのゲームを解説を付けながら、ExcelのVBAで作成します。 VBAが初めての人にも、分かるように解説したつもりです。 また、すべてコード(ソースコード)を付けています。

Excel VBA用でこれまで作ったゲームをまとめたものです。 プログラムは初めての人でも、内容が理解できるように解説を付けています。 す…

よろしければサポートお願いします!