プロローグ:なぜか解説を交えながらゲームを作ることになってしまった…。これはその貴重な記録である。
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つのメインループを動かすことができるようになりました。
ではまたコンパイル!
なぜじゃ!なぜじゃ!!