ABで避けゲーを作る

プロローグ:なぜか解説を交えながらゲームを作ることになってしまった…。これはその貴重な記録である。

1.メインループ

いきなりゲーム作りに入りますよ。
まず、ゲームに限らず多くのプログラムではメインループというのを持っています。
あんまり便利で重要で不可欠なもんで、ABではウィンドウを作ると勝手に作ってくれちゃいます。
しかし、ゲームではメインループの中でいろいろゲーム処理をしなけりゃいけないので、用意してもらったメインループだけでは不十分です。
だから・・・・こらそこ!誰が用意されたメインループを変更しろと言った!
用意してもらった完璧なメインループのほかに、ゲーム用の自前のメインループを用意するのです。
別々にするのにはそれなりに理由はあるのですが省略。
何はともあれメインループを自作してみます。

Function MainOperation(dwDummy As DWord)
    GameInit()              '初期化
    While 1
        MyCharaMove()       'マイキャラ動かす
        EnemyMove()         '敵キャラ動かす
        PaintScene()        '画面描画
        WaitFrame()         '時間まで待つ
    Wend
End Function

While 1〜Wendまでがメインループです。
中身は別に作りたいように作ればいいのですが、ゲームらしくそれっぽい関数を並べています。
では早速コンパイルしてみましょう。
どんなゲームになっているでしょうか。どきどき…。

エラーが起きた(3.37kilobyte)
なんという礼儀知らずでしょう、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つのメインループを動かすことができるようになりました。
ではまたコンパイル!
やっぱりエラーが起きた(3.37kilobyte)
なぜじゃ!なぜじゃ!!

続く