キー入力とテクスチャの表示ができれば簡単なゲームぐらいは作ることができます。 今は無きマイコンBASICマガジン2000年7月号に掲載されたMiniS.T.G.を移植してみました。
MaxOSX10.4以降で動作するつもりです。 IntelのCPUでは動作確認しましたがPowerPCでは動くかどうか分かりません。 一応ユニバーサルバイナリの設定にしたので両対応のはず。Rossetaでは動きました。 またOpenGLを使用しているため3Dアクセラレーターが効かない環境では動かないか動いても遅いです。
Intel 白MacBook(Core2Duo 2.2GHz) + MacOSX10.5 + XCode3.0
タイトル画面でZキーかスペースキーを押すとゲームが始まります。 赤い自機をカーソルキーで上下左右に移動できます。 Zキーかスペースキーで敵を撃てます。 敵、敵の弾に当たると1機減ります。残機がなくなるとゲームオーバー。 ステージの最後にはボスが出てきます。
#ref(): File not found: "MiniSTG01.png" at page "Cocoaでシューティングゲーム"
#ref(): File not found: "MiniSTG02.png" at page "Cocoaでシューティングゲーム"
#ref(): File not found: "MiniSTG03.png" at page "Cocoaでシューティングゲーム"
一番初めに呼ばれる関数。
NSOpenGLViewの派生クラス。 タイマとキーボードメッセージの処理をしている。
テクスチャ用画像読み込みクラス。CocoaのNSImageとNSBitmapImageRepを使用。 手抜き実装のため32ビットアルファ付きフルカラーのみ読み込み可。
良く使う関数をまとめた物。
ObjectiveCとC++の架け橋。 Mainloop_Initializeは初めに一回だけ、Mainloop_Releaseは最後に一回だけ呼ばれる。 Mainloop_Updateは定期的に一定間隔(約1/60s)で呼ばれる。
ゲームプログラム本体 mainloopから呼ばれる