*第6回目 Cocoaでシューティングゲーム [#bf12259f] キー入力とテクスチャの表示ができれば簡単なゲームぐらいは作ることができます。 今は無きマイコンBASICマガジン2000年7月号に掲載されたMiniS.T.G.を移植してみました。 **お知らせ [#qb985fee] -2009/06/04 --ファイルのアーカイブが失敗していたためプログラムが実行できなくなっていたので修正しました。 **動作環境 [#naf824dd] MaxOSX10.4以降で動作するつもりです。 IntelのCPUでは動作確認しましたがPowerPCでは動くかどうか分かりません。 一応ユニバーサルバイナリの設定にしたので両対応のはず。Rossetaでは動きました。 またOpenGLを使用しているため3Dアクセラレーターが効かない環境では動かないか動いても遅いです。 **開発環境 [#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] -2009/06/04 --プログラム #ref(http://www.ripple.gr.jp/~kuran_kuran/bin/download/MiniSTG_20090604.zip)~ --ソース #ref(http://www.ripple.gr.jp/~kuran_kuran/bin/download/MiniSTGSource_20090604.zip)~ -2009/06/02 --プログラム~ MiniSTG_20090602.zip~ --ソース~ MiniSTGSource_20090602.zip [[前に戻る>プログラミング]]