SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#たんと学ぶ/わりと硬派なソフトウェア開発講座

C#たんと学ぶ わりと硬派なソフトウェア開発講座
番外編「Windows Phone 7」

C#たんと学ぶ わりと硬派なソフトウェア開発講座(5)

SilverlightとXNAの連携

C#たん トーク
ここまでをまとめると、コントロールを組み合わせて構築する一般的なアプリケーション開発ならSilverlightで作る。フレームごとに画面更新が必要なゲームや3DのハイエンドなゲームはXNA Frameworkで作る。ということです。
vbたん 悲しい
でもXNA Frameworkにはビジュアルなコントロールが用意されていないから、ゲーム以外のツールの中で3Dを使いたいときはどうしたらいいのかしら。
あと、ゲームでも、ボタンとかテキストボックスは使いたいのよねー。
C#たん 目閉じ
はい。実は、これまでのWindows Phone 7では、SilverlightかXNA Frameworkの一方しか選択できませんでした・・・
C#たん 笑顔
ですが、日本で発売されたIS12Tに搭載されている最新バージョンのWindows Phone 7.5では、双方の機能を組み合わせれるようになりました。
SilverlightとXNAを組み合わせたアプリケーション
SilverlightとXNAを組み合わせたアプリケーション

 基本はSilverlightアプリケーションとなっていて、内部でXNA Frameworkと描画を共有できるようになりました。SilverlightコントロールをテクスチャとしてXNA Frameworkで描画できるため、ゲームのUIにSilverlightを利用できます。3Dのゲームでも、メニュー画面などでボタンなどのUIを作る必要があるため、部分的にSilverlightと組み合わせることで実装が簡単になります。

 XNA Framework側でSilverlightのページに描画を行うにはSharedGraphicsDeviceManagerクラスを用い、デバイスの共有を有効にします。SharedGraphicsDeviceManagerクラスはXNA Frameworkで描画するために必要となるGraphicsDeviceオブジェクトを提供します。

 SilverlightのコントロールをXNA Frameworkで描画するにはUIElementRendererクラスを用います。XNA FrameworkではSilverlightコントロールを直接利用することはできないので、UIElementRendererクラスでコントロールを2D画像に変換してから、テクスチャとして描画する仕組みです。

まとめ

C++たん あきれ
あの…
いくらなんでも今回、あたしの出番なさすぎじゃない?
C#たん 考える
というわけで、Windows Phone 7ではC++たんに出番はありません。私だけでビジネスアプリもゲームも作れちゃうのです。
C++たん 驚き
ちょっとー。ゲーム開発では、まだまだ私が主流なのに。
vbたん 悲しい
でも、ゲーム開発でのクロスプラットフォーム性を考慮するとC++が使えないのは問題がありそうね。
C++たん 納得
そうよ。商業のパッケージゲームはもちろん、iOSやAndroidのゲーム開発にも私が使われているんだから。
C#たん トーク
まぁ、ゲーム業界だとC++で書かれたライブラリが多いですからね。でも、純粋に独立したデータモデルやロジックならC#に移行するのは難しくありません。C++で厄介だったメモリ管理の大部分はランタイムとフレームワークがやってくれます。
C#たん 目閉じ
問題は描画ですが、そこはC++というよりOpenGLに依存しちゃってるものが多いので、Windows Phone 7がC++にだけ対応しても意味ないのです。
C++たん トーク2
そうね。近年のソフトウェアの生産性や品質は、プログラミング言語ではなくフレームワークによるところが多いから言語に拘るのは生産的ではないわ。
C#たん お願い
そうです。C++たんは、なんならもうゴールしてもいいんですよ。
C++たん なのはさん
いえいえ、まだまだ。C#たん、少し頭冷やそうか。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧

もっと読む

この記事の著者

C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)

ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6179 2011/10/04 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー