ゲーム作成の土台作り
まず始めにVisualBasic6.0を立ち上げ、『標準EXE』を開きます。
プロジェクト名を『Game』、フォームのオブジェクト名を『frmMain』に変更します。
次に、frmPic(画像格納用フォーム)と、mdlMain(メインプログラム)と、
API.bas(ゲーム専用モジュール)を追加します。
frmMainのBoderStyleを固定(実線)にし、frmMainにピクチャボックスを追加します。
ピクチャボックスのオブジェクト名を『picMain』にし、AutoRedrawを『True』にし、ScaleModeを『3-ピクセル』にします。
さらに、BorderStyleを『0-なし』にします。BackColorは適当に『黒』にして下さい。
これと同じピクチャボックスをfrmPicに貼り付け、そこへゲームで使用する自作の画像をpictureからロードします。
プロジェクトの『Game』を右クリックし、プロジェクトのプロパティから、スタートアップの設定をSub Mainにします。
これにて大まかな環境設定は終わりです。
続きまして、ここからソースコードを入力していきます。
まずは『mdlMain』を開き、次のソースコードを入力してください。
Sub Main() End Sub
先ほどスタートアップの設定により指定した『Sub Main()』からプログラムが始まります。
基本的にこの『Sub Main()』にプログラムを記述していけばゲームが完成します。
おおまかな処理の流れは次のとおりです。
Sub Main() Dim T1 As Long '始まりの時間を取得用 Dim T2 As Long '終わりの時間を取得用 'フォームを表示する frmMain.Show 'メインループ Do '始まりの時間を取得する T1 = timeGetTime 'ほかの処理も行う DoEvents '背景を描画 BackDraw 'キャラを描画 CharaDraw '敵を描画 EnemyDraw 'キーの入出力 GetKey 'メイン画面を更新する frmMain.picMain.Refresh '終わりの時間を取得する T2 = timeGetTime '25ミリ秒以下で処理された場合 If T2 - T1 < 25 Then 'ウェイトをかける Wait 25 - (T2 - T1) End If Loop End End Sub
Long型の変数でT1とT2を宣言していますが、これは処理が早すぎる場合ウェイトをかけるためです。
最近の高性能なパソコンだと、描画がめちゃめちゃ早く行われるので、それを防ぎます。
メインループ部がゲームの処理部分です。『BackDraw』、『CharaDraw』、『EnemyDraw』、『GetKey』は
自作ステートメントです。
自分好みの名前に変えていただいてかまいません。
このように、メインループ部に自作ステートメントを追加していくことにより、ゲームができていきます。