GO-AHEADの日記

GO-AHEADで出版した書籍の紹介をします

Re5:50歳から始めるラズベリーパイ-11

Re5:50歳から始めるラズベリーパイ

簡単なゲームで学ぶVBAプログラミング入門

amazon kindleを出版しました。


 3.7 ブロック崩しゲームの作成-1
 VBAブロック崩しのようなアクション?ゲームもできます。
そもそも元々の設定に無理があるのですが、1マスを1ブロックとして考えて作ります。ただし、激遅です。
 ブロック崩しの一般的な形の、ブロック、ボール、ラケット、ゲーム開始ボタンとスコア(ここでは残り数)そして、「GAMEOVER」表示、クリアしたときの「全消し」表示となります。

f:id:GO-AHEAD:20200324162908p:plain


(1)画面の設定は、列20×行21の大きさとしました。
初期設定の箇所で
Range("A:T").ColumnWidth = 1.5 '幅を設定する
wi = Columns("A").Width '幅を取得する
Range("1:50").RowHeight = wi
として、列20×行21(50行まで設定しています。)

 

(2)ラケットの動作
 ラケットの大きさは3マスとしました。
ラケットはキーボードからの右方向キーと左方向キーを使用しています。シートイベントは使わずに、(ここが激遅の原因の一つです。)

kx = ActiveCell.Column
左方向キーを押したとき
If (kx<2) Then

    rx = rx - 1
  If (rx <= 1) Then
    rx = 1
  End If

End If
右方向キーを押したとき
If (kx>2) Then

    rx = rx + 1
  If (rx >= 18) Then
    rx = 18
  End If

End If
'アクティブなセルの位置を元に戻す。
Range("B22").Select


3マスのラケット表示
Cells(20, rx).Interior.Color = RGB(255, 255, 255)
Cells(20, rx + 1).Interior.Color = RGB(255, 255, 255)
Cells(20, rx + 2).Interior.Color = RGB(255, 255, 255)