VBAゲームに挑戦!ボールを動かそう!
動きのあるゲームとしては、非常にシンプルなものです。単純に、壁にぶつかったら跳ね返るというだけです。しかし、ゲームを作るうえで基本的なことは、十分に学習できます。
つまり、このプログラムを自力で作成できるようになれば、ゲーム作りの基本は、身に付いたといえるでしょう。
まず、module用のコードですが、VBAでは、時間待ちを行う関数がありません。そこで、しかたなく「Windows API」を使うことになります。難しい感じがあり、取っつき難いとおもいますが、他の人が作ったコードを利用するときも同じような感じですので、慣れてください。
といっても、下記のコードを新しく作ったmoduleに貼るだけです。後は、使い方に注意するだけです。
sleep 待ち時間(ミリ秒)
例えば、「sleep 3000」とすれば、3秒待つことになります。ここでは、
'時間待ち
Sleep 100
としています。したがって、0.1秒待つことになります。
何故、時間待ちしないといけないのでしょうか?VBAでは、最後の結果しか表示されないので、人間には動いているように見えないからです。
人間が動いているように見えるためには、残像現象が必要です。そのため、残像が残るように、時間待ちをしているわけです。
ここでは、指定された領域の中だけ、ボールが動くようにプログラムを作っていきます。
まずは、大きなプログラムの流れを考えてみます。
プログラムの流れ
プログラム全体で利用する変数・定数を宣言
初期画面の設定(今回は、予め画面構成を実行済みとします。)
ボールの初期条件の設定(位置など)
エリアカラーの指定(この色が塗られている場所だけ動けます。)
今回は黄色を指定しています。ボールの移動
以前のボールの位置を消す
新しいボールの位置(いままでの延長上の位置)に置けるかどうかを判定する
置ける場合は、ボールを書く
置けない場合は、反射した場所を新し位置に設定する
5のボールの移動をボタン「Stop」が押されるまで繰り返す(ループ)
あとは、コードを書くだけです。
ここから先は
Excel VBA用でこれまで作ったゲームをまとめたものです。 プログラムは初めての人でも、内容が理解できるように解説を付けています。 す…
よろしければサポートお願いします!