プロローグ:なぜか解説を交えながらゲームを作ることになってしまった…。これはその貴重な記録である。
1.メインループ
いきなりゲーム作りに入りますよ。
まず、ゲームに限らず多くのプログラムではメインループというのを持っています。
あんまり便利で重要で不可欠なもんで、ABではウィンドウを作ると勝手に作ってくれちゃいます。
しかし、ゲームではメインループの中でいろいろゲーム処理をしなけりゃいけないので、用意してもらったメインループだけでは不十分です。
だから・・・・こらそこ!誰が用意されたメインループを変更しろと言った!
用意してもらった完璧なメインループのほかに、ゲーム用の自前のメインループを用意するのです。
別々にするのにはそれなりに理由はあるのですが省略。
何はともあれメインループを自作してみます。
Function MainOperation(dwDummy As DWord)
GameInit() '初期化
While 1
MyCharaMove() 'マイキャラ動かす
EnemyMove() '敵キャラ動かす
PaintScene() '画面描画
WaitFrame() '時間まで待つ
Wend
End Function
While 1~Wendまでがメインループです。
中身は別に作りたいように作ればいいのですが、ゲームらしくそれっぽい関数を並べています。
では早速コンパイルしてみましょう。
どんなゲームになっているでしょうか。どきどき…。
なんという礼儀知らずでしょう、ActiveBasicとやらは!
あっ、そういえばメインループは作ったけどそれを呼び出すのを忘れてました。
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim dwDummy As DWord
CreateThread(ByVal 0,0,AddressOf(MainOperation),0,0,VarPtr(dwDummy))
End Sub
これで2つのメインループを動かすことができるようになりました。
ではまたコンパイル!
なぜじゃ!なぜじゃ!!