エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のゲームに適したプロジェクト テンプレートを選択する

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 のみ

 

Windows Phone 8 アプリケーションは 2 つのカテゴリのいずれかに属します。マネージ アプリはマネージ コードに基づいていますが、このアプリケーションの種類からネイティブ コードを呼び出すこともできます。 もう 1 つのアプリケーションの種類を "Direct3D アプリ" と呼びます。Direct3D アプリ 内でマネージ コードを呼び出すことはできません。Windows Phone 8 では、電話機能の多くは Windows Phone ランタイム API を通じて公開され、ネイティブ コードおよびマネージ コードの両方からアクセスできます。多くのアプリケーション シナリオは、管理されているアプリ または Direct3D アプリ を使用して達成できます。同じような結果を得ることができるものの、各アプリケーションの種類の構造、実装、および使用できる API にはいくつかの大きな違いがあります。コーディングを開始する前にこうした違いを理解し、アプリケーションに適したモデルを選択することが重要です。

このトピックは、次のセクションで構成されています。

 

Windows Phone 8 には、管理されているアプリ 用に複数の異なるプロジェクト テンプレートが用意されており、そのすべては、Visual Studio の [新しいプロジェクト] ダイアログ ボックスで、[テンプレート] - [Visual C#] - [Windows Phone またはテンプレート] - [Visual Basic] - [Windows Phone] にあります。次のリストに、管理されているアプリ の機能の一部を示します。

  • アプリ モデル – 管理されているアプリ のアプリ モデルは、以前のバージョンの Windows Phone とほとんど同じです。アプリケーションは、メインの Application オブジェクトと、1 つ以上の PhoneApplicationPage オブジェクトで構成され、そのすべては XAML および C#、または XAML および VB.NET で実装されます。各ページはユーザー インターフェイスを実装し、ユーザーはこれらのページを移動してアプリケーションのさまざまな部分にアクセスします。

  • UI – 管理されているアプリ のユーザー インターフェイスは XAML を使用して定義されます。データ バインドをサポートするために使用できるコントロールの豊富なライブラリがあり、Visual Studio および Microsoft Expression Blend に組み込まれたデザイナーで、これを簡単にレイアウトできます。

  • 専用の機能 – 次の機能は 管理されているアプリ でのみ使用でき、ネイティブのみのアプリケーションで使用することはできません。

    • バックグラウンド エージェント

    • ブラウザー コントロール

    • Map コントロール

    • バックグラウンド転送サービス

    • ライブ タイル

    • プッシュ通知

    • Windows Phone 広告コントロール

    • ローカライズされたリソース

    • XAML コントロール

  • マネージ ランタイムが呼び出されるため、起動時間は少し遅くなり、少量のメモリが余分に使用されます。XAML コントロールを無効にする場合を除き、再描画するときの管理されているアプリ アプリのパフォーマンスの低下は、純粋なネイティブ アプリと比較してもほとんどありません。

XAML を使用して UI 全体を提供するゲームを作成することはできます。ただし、Direct3D を使用して画面に 3D グラフィックをレンダリングするマネージ ゲームを作成することもできます。この種類のアプリについては、2 つの特別なプロジェクト テンプレートがあります。

XAML with Direct3D プロジェクト テンプレート

XAML の UI 内で 3D グラフィックをレンダリングする場合は、このテンプレートをお勧めします。このテンプレートは、DrawingSurface コントロールを使用して画面に Direct3D グラフィックを表示します。DrawingSurface は他の XAML コントロールと同じように、画面の任意の場所で他の XAML コントロールの上または横に配置することができます。実際にグラフィックをレンダリングする Direct3D コードは、別の Windows Phone ランタイム コンポーネントで実装します。

Direct3D with XAML プロジェクト テンプレート

ライブ タイルなど、管理されているアプリ のみで使用できる一部の機能を活用するため、基本的にネイティブなゲームの周囲に Thin ラッパーとしてマネージ アプリを使用するだけのゲームを作成する場合は、このテンプレートをお勧めします。このテンプレートは、DrawingSurfaceBackgroundGrid コントロールを使用して画面に Direct3D グラフィックを表示します。DrawingSurface コントロールとは異なり、このコントロールは XAML ツリーのルートに置き、常に画面全体を対象とする必要があります。グラフィックをレンダリングする Direct3D コードは、他のテンプレートと同様に、別の Windows Phone ランタイム コンポーネントで実装します。Direct3D with XAML アプリのフレーム レートは、XAML with Direct3D アプリよりも少し向上します。

Direct3D アプリ は完全にネーティブ コードで記述します。経験の浅い開発者にとって、Direct3D アプリ の開発は、同等の 管理されているアプリ の開発よりも困難になることが考えられます。これは、信頼性の高い、高レベルなマネージ API の形式で管理されているアプリ で使用できる多くの機能を、ネイティブ コードを使用して最初から実装する必要があるためです。純粋なネイティブ アプリで使用できるボタン、リスト、またはテキスト ボックス コントロールはあらかじめ作成されていないため、このことは特に UI コンポーネントに当てはまります。ただし、こうしたコントロールの一部はサード パーティ ライブラリで提供されている場合もあります。経験豊富な開発者や、複数のプラットフォームを対象とする開発者の場合は、このプロジェクトの種類を使用する方が簡単で、柔軟性も高まる可能性があります。Direct3D アプリ の機能の一部を次に示します。

  • プロジェクト テンプレート – Direct3D アプリ を Visual Studio で作成するには、新しいプロジェクトを作成し、[新しいプロジェクト] ダイアログ ボックスの [テンプレート] - [Visual C++] で [Direct3D アプリケーション] プロジェクト テンプレートを選択します。

  • アプリ モデル - Direct3D アプリ のアプリケーション モデルは、Windows 8 デザインの原則を反映しています。このモデルは、アプリケーション ライフサイクル イベントを管理し、IFrameworkView インターフェイスの実装に渡す CoreApplication オブジェクトを使用します。このインターフェイスは、ゲーム ループをホストする Run メソッドを公開します。このモデルでは、ナビゲーションの組み込みの概念はありません。単純にアプリのニーズに応じて画面に描画します。

  • UI - Direct3D アプリ は XAML またはいずれの組み込みコントロールもサポートしません。アプリで、テキスト ボックス、ボタン、チェック ボックスなどの標準コントロールが必要な場合は、最初からこれらのコントロールを記述するか、サード パーティのライブラリを利用する必要があります。

マネージ – コントロールとページ ナビゲーションを含む 管理されているアプリ の UI フレームワークを使用すると、アプリケーション開発は高速で簡単になります。Windows Phone ランタイム ライブラリへのアクセス、Direct3D を使用してグラフィックを XAML ページに描画できるようにする DrawingSurface コントロール、およびマネージ コードからネイティブ アセンブリを呼び出す機能があれば、管理されているアプリ はネイティブのみのアプリと同等の機能およびパフォーマンスを実現します。ライブ タイル、バックグラウンド転送サービス、組み込みのランチャーとセレクターの一部など、管理されているアプリ アプリケーションでのみ使用できるいくつかの便利な機能があります。管理されているアプリ のアプリでは、Windows Phone OS 7.1 アプリケーションのほとんどのコードを再利用することもできます。

Direct3D - Direct3D アプリ は、複雑な 3D ゲームなど、可能な限り最大のパフォーマンスが必要なアプリを想定しています。組み込みのコントロールまたはその他のユーザー インターフェイス プリミティブはありません。純粋なネイティブ アプリは、Windows 8 ネイティブ アプリケーションや、ネイティブ コードをサポートしている他のプラットフォームにより簡単に移植できます。

Direct3D アプリ の作成の詳細については、「Windows Phone 8 用の Direct3D アプリ開発」を参照してください。

表示:
© 2014 Microsoft