SHOEISHA iD

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

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

Windows Phone 7.5でつくる3Dアプリケーション

SilverlightとXNAを融合させてWindows Phoneアプリケーションを開発しよう

Windows Phone 7.5でつくる3Dアプリケーション(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

SilverlightとXNAを融合させる

 まずは、SilverlightとXNAを同一の画面で融合させる方法を動画でご紹介します。この動画では、Silverlight/XNAプロジェクトを新規に作成し、GamePage内で(「GamePage.xaml」と「GamePage.xaml.cs」に対して)SilverlightとXNAを融合させる処理を追記しています。

Silverlight/XNAによるWindows Phoneアプリケーション開発(再生時間:2分37秒)

 上記の動画から見て取れるように、少ないコード量でSilverlightとXNAを融合させることが可能となっています。それでは実施に、上記の動画の手順に沿って、SilverlightとXNAを融合させる手順を解説します。

SilverlightでUIを構築する

 まず、従来のSilverlightアプリケーション開発と同様に、XAMLに対してUIコントロールを配置します。上記の動画では、「GamePage.xaml」に対して適当なUIを構築するため、「MainPage.xaml」のUIを複製しています。このようにして変更した「GamePage.xaml」の内容を以下に掲載します。

MainPage.xamlのUIを複製したGamePage.xaml
<phone:PhoneApplicationPage 
    x:Class="SlXnaApp1.GamePage"
    …中略…>
    
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="マイ アプリケーション" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="ページ名" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Button Height="100" Content="ゲームのページに変更" />
        </Grid>
    </Grid>
    
</phone:PhoneApplicationPage>

 ただし、上記の手順を実施しただけでは、UIは自動的に描画されません。なぜなら、前章で紹介したGraphicsDevice.SetSharingMode()メソッドにより、Silverlightによる描画が無効(XNAによる描画が有効)となっているからです。

 それでは、Silverlight/XNAを利用している画面において、SilverlightのUIを画面に表示するためには、どのようにすればよいのでしょうか? 答えは至ってシンプルで、SilverlightのUIをXNAで描画すればよいのです。Windows Phone SDK 7.1には、SilverlightのUIをXNAで描画するためのユーティリティとして、UIElementRendererクラスが用意されています。

次のページ
XNAでSilverlightのUIを描画する

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Phone 7.5でつくる3Dアプリケーション連載記事一覧

もっと読む

この記事の著者

もとひろん(モト スクウェア ソリューション)

自営業でシステムエンジニアを営んでおります。主に.NETテクノロジによるシステム開発を得意としておりますが、いざとなれば何でもやります。ふつつかものですが、よろしくお願い致します!WebサイトMOTO SQUARE SOLUTIONTwitter@MOTOSQUARE 

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6244 2011/11/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング