見出し画像

VBAゲームに挑戦!ボールを動かそう!


Let’s move the ball!

 動きのあるゲームとしては、非常にシンプルなものです。単純に、壁にぶつかったら跳ね返るというだけです。しかし、ゲームを作るうえで基本的なことは、十分に学習できます。

 つまり、このプログラムを自力で作成できるようになれば、ゲーム作りの基本は、身に付いたといえるでしょう。

 まず、module用のコードですが、VBAでは、時間待ちを行う関数がありません。そこで、しかたなく「Windows API」を使うことになります。難しい感じがあり、取っつき難いとおもいますが、他の人が作ったコードを利用するときも同じような感じですので、慣れてください。

 といっても、下記のコードを新しく作ったmoduleに貼るだけです。後は、使い方に注意するだけです。

sleep 待ち時間(ミリ秒)

例えば、「sleep 3000」とすれば、3秒待つことになります。ここでは、

'時間待ち
Sleep 100

としています。したがって、0.1秒待つことになります。

 何故、時間待ちしないといけないのでしょうか?VBAでは、最後の結果しか表示されないので、人間には動いているように見えないからです。

 人間が動いているように見えるためには、残像現象が必要です。そのため、残像が残るように、時間待ちをしているわけです。

ここでは、指定された領域の中だけ、ボールが動くようにプログラムを作っていきます。

 まずは、大きなプログラムの流れを考えてみます。

プログラムの流れ

  1.  プログラム全体で利用する変数・定数を宣言

  2.  初期画面の設定(今回は、予め画面構成を実行済みとします。)

  3.  ボールの初期条件の設定(位置など)

  4.  エリアカラーの指定(この色が塗られている場所だけ動けます。)
     今回は黄色を指定しています。

  5. ボールの移動

    1.  以前のボールの位置を消す

    2.  新しいボールの位置(いままでの延長上の位置)に置けるかどうかを判定する

    3.  置ける場合は、ボールを書く

    4. 置けない場合は、反射した場所を新し位置に設定する

  6.  5のボールの移動をボタン「Stop」が押されるまで繰り返す(ループ)

 あとは、コードを書くだけです。

ここから先は

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

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

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