Ideaworks Labsが私たちの世話をし、AirPlaySDKを作成しました。 このツールキットを使用すると、C ++コードを1回記述するだけで、iOS、Android、Samsung Bada、Symbian、Windows Mobile、BREW、Palm / HP WebOSおよびMaemoプラットフォームのネイティブアプリケーションにコンパイルできます。 まあ、どれほど印象的ですか? さらに、AirPlaySDKには優れたドキュメントがあり(英語ですが)、特定のプラットフォームのユニークな機能を使用できます。 AirPlaySDKをwww.airplaysdk.comから無料でダウンロードして試すか、わずか99ドルでインディーズライセンスを購入すると、iPhone開発者にはこのツールキットを無料で使用する権利が与えられます(無料)。
プロジェクト作成
AirPlaySDKを使用すると、WindowsまたはMac OSでアプリケーションを作成でき、それぞれVisual Studio(バージョン6.0以降)およびXcodeとうまく統合できます。 Visual Studioに焦点を当てますが、Xcodeの場合、すべてがこれ以上複雑にならないはずです。
これで、AirPlaySDKとVisual Studioをダウンロードしてインストールしました。 ドライブの任意の場所にHelloWorldフォルダーを作成します。 このフォルダーに最初のプロジェクトが配置されます。
ソリューション全体のメインファイルは、 HelloWorldフォルダー内のHelloWorld.mkbで 、作成して編集用に開き、次の内容をそこに書き込みます。
options { s3e-data-dir="data" } files { (source) HelloWorld.cpp HelloWorld.h HelloWorldMain.cpp } subprojects { iw2d }
ここで、 オプションセクションのs3e-data-dirパラメーターは、将来のアプリケーションのリソースが配置されるフォルダーを定義します。 それは、画像、音楽、またはその他のものです。 HelloWorldフォルダーに、私たちが宣言したデータフォルダーを作成します。
ファイルセクションでは、プロジェクトファイルのリストについて説明します。 括弧内に、 ソースフォルダーを指定しました。これも作成する必要があります。 その中に、 HelloWorld.cpp 、 HelloWorld.h 、 HelloWorldMain.cppの 3つのファイルを配置します。
サブプロジェクトセクションには、 プロジェクトで使用するライブラリの名前があります。
クロスプラットフォームの「Hello World!」
これで、プロジェクトの準備が完了し、プログラミングを開始できます。 これを行うには、 HelloWorld.mkbファイルをダブルクリックします。最初にAirPlaySDKロゴが表示され、次にVisual Studioのプロジェクトが目の前に開きます。 HelloWorldMain.cppファイルに以下のコードを入力しますが、ここでは、ここで何をするのかを説明します。
#include "s3e.h" #include “HelloWorld.h” int main() { GameInit(); while (true) { s3eDeviceYield(0); s3eKeyboardUpdate(); bool result = GameUpdate(); if ((result == false) || (s3eKeyboardGetState(s3eKeyEsc) & S3E_KEY_STATE_DOWN) || (s3eKeyboardGetState(s3eKeyLSK) & S3E_KEY_STATE_DOWN) || (s3eDeviceCheckQuitRequest())) break; GameRender(); } GameShutdown(); }
#include“ s3e.h”ディレクティブを使用して、標準のAirPlaySDKヘッダーファイルを含めます。これにより、モバイルデバイスで作業できるようになります。
GameInit()関数を自分で記述します。 必要な変数を初期化し、あらゆる方法でオブジェクトを作成し、リソースをロードし、プログラムを起動するとすぐに他のアクションを実行します。
s3eDeviceYield(..)関数は、パラメーターで指定された時間デバイスの動作を停止し、オペレーティングシステムがいくつかのアクションを実行できるようにします。 この関数のパラメーターとして、ゼロを渡しました。そのため、オペレーティングシステムで許容される最小の遅延を取得します。
s3eKeyboardUpdate()は、携帯電話のキーの現在の状態に関する情報を更新し、ループの通過中にユーザーがキーを押したかどうかを確認します。
GetUpdate()関数も独自に作成します。 通常、アプリケーションのロジック全体が含まれています。 ゲームを書いている場合、この機能では、ユーザーが撃った後に次のモンスターが死亡したかどうかを確認する必要があります。 この関数は、アプリケーションが引き続き動作する場合はtrueを返し、たとえば、ユーザーが[ゲームを終了する]をクリックした場合はfalseを返すことに注意してください。
以下は、ユーザーが対応するメニュー項目または電話キーを押してアプリケーションを終了するかどうかを確認するチェックです。オペレーティングシステムがアプリケーションの終了を要求し、結果が正の場合、メインサイクルを完了します。 アプリケーションが引き続き動作する場合は、先に進みます。
GameRender()で 、これもまた独自に作成しますが、画面上のすべてのものとすべてのものの描画があります。 そして最後に、 GameShutdown() (まだ存在しない4番目の関数)はアプリケーションを終了し、結果を保存し、メモリを解放し、他の操作を実行します。
さて、私たちがレビューしたアプリケーションの主な機能。 HelloWorldMain.cppファイルがテンプレートであることは注目に値します。 ほぼ同じ内容のこのようなファイルは、AirPlaySDKを使用して作成するすべてのプロジェクトに存在します。
アプリケーションロジックについて説明します
今こそ、アプリケーションロジックを直接決定する関数を扱うときです。 これを行うには、HelloWorld.cppファイルを開き、コードをドライブします。
#include "Iw2D.h" void GameInit() { Iw2DInit(); } bool GameUpdate() { return true; } void GameRender() { Iw2DSetColour(0xFF000000); Iw2DFillRect( CIwSVec2(0, 0), CIwSVec2(Iw2DGetSurfaceWidth(), Iw2DGetSurfaceHeight()) ); Iw2DSetColour(0xFF00FF00); Iw2DFillArc( CIwSVec2(Iw2DGetSurfaceWidth()/2, Iw2DGetSurfaceHeight()/2), CIwSVec2(30, 30), 0, 0x800 * 2 ); Iw2DSurfaceShow(); } void GameShutdown() { Iw2DTerminate(); }
お気づきかもしれませんが、 HelloWorld.cppファイルのコードには、説明すると約束した関数が含まれています。 このリストについて複雑なことは何もありません。 彼はただ画面を黒く塗り、真ん中に緑の円を表示します。
これらの関数のプロトタイプをHelloWorld.hヘッダーファイルに記述して、メイン関数main()から呼び出すことができるようにする価値があります。 次のようになります。
#ifndef HELLOWORLD_H #define HELLOWORLD_H void GameInit(); bool GameUpdate(); void GameRender(); void GameShutdown(); #endif
リストにはコメントは不要です。 アプリケーションコードの準備ができているので、Visual StudioでF5キーを押して実行できます。 エミュレータウィンドウが開き、AirPlaySDKでの最初の作成を示します。
プロジェクトの組み立て
それでは、AirPlaySDKの主な利点(あるプラットフォームから別のプラットフォームへのアプリケーションの移植性)を実証するときです。
アクティブなプロジェクト構成として「GCC(ARM)Release」を選択し、F5を押します。 Airplay System Deployment Toolウィンドウが表示されます。 「ARM GCCリリース」をチェックし、「次へ」をクリックします。 次のステップはこれまでのところ私たちにとって面白くないので、もう一度「次へ」をクリックします。 ここで、アプリケーションをコンパイルするさまざまなプラットフォームが必要になります。 Bada OSをマークし、「すべてデプロイ」をクリックして、プロジェクトのコンパイルが完了するのを待ちましょう。
PS 2次元グラフィックスに加えて、AirPlaySDKは3次元ゲームの作成 、GPS、サウンド、連絡先リスト、ネットワーク、ビデオ、その他さまざまなものの作成を可能にします 。
UPD。 しばらくの間、Airplay SDKはMarmalade SDKに改名されました。