- 追加された行はこの色です。
- 削除された行はこの色です。
*第6回目 Cocoaでシューティングゲーム [#bf12259f]
キー入力とテクスチャの表示ができれば簡単なゲームぐらいは作ることができます。
今は無きマイコンBASICマガジン2000年7月号に掲載されたMiniS.T.G.を移植してみました。
**動作環境 [#naf824dd]
MaxOSX10.4以降で動作するつもりです。
IntelのCPUでは動作確認しましたがPowerPCでは動くかどうか分かりません。
またOpenGLを使用しているため3Dアクセラレーターが効かない環境では動かないか動いても遅いです。
G4とG5、MacOSX10.4.11で動作しないとの報告がありました。
ただいま調査中です。
**開発環境 [#mc506d20]
Intel 白MacBook(Core2Duo 2.2GHz) + MacOSX10.5 + XCode3.0
**ゲームの説明 [#td870b6e]
タイトル画面でZキーかスペースキーを押すとゲームが始まります。
赤い自機をカーソルキーで上下左右に移動できます。
Zキーかスペースキーで敵を撃てます。
敵、敵の弾に当たると1機減ります。残機がなくなるとゲームオーバー。
ステージの最後にはボスが出てきます。
**画面 [#r7c19cc6]
#ref(MiniSTG01.png)~
#ref(MiniSTG02.png)~
#ref(MiniSTG03.png)~
**ファイル構成 [#z90259a6]
-main.m
一番初めに呼ばれる関数。
-view.m/view.h
NSOpenGLViewの派生クラス。
タイマとキーボードメッセージの処理をしている。
-image.mm/image.hpp
テクスチャ用画像読み込みクラス。CocoaのNSImageとNSBitmapImageRepを使用。
手抜き実装のため32ビットアルファ付きフルカラーのみ読み込み可。
-library.cpp/library.hpp
良く使う関数をまとめた物。
-mainloop.cpp/mainloop.hpp
ObjectiveCとC++の架け橋。
Mainloop_Initializeは初めに一回だけ、Mainloop_Releaseは最後に一回だけ呼ばれる。
Mainloop_Updateは定期的に一定間隔(約1/60s)で呼ばれる。
-ministg.cpp/ministg.hpp
ゲームプログラム本体
mainloopから呼ばれる
**ダウンロード [#j6482f3b]
***実行ファイル [#y573b119]
#ref(http://www.ripple.gr.jp/~kuran_kuran/bin/download/MiniSTG_20090602.zip)~
***ソースファイル [#q19ba938]
#ref(http://www.ripple.gr.jp/~kuran_kuran/bin/download/MiniSTGSource_20090602.zip)~
[[前に戻る>Mac]]