画像画面
ゲームを作るうえでなるべく早めに用意しておいたほうがよいと思う 項目に画面遷移があげられます。色々なシーンの処理をひとつのメイン ループで処理しようとすると条件分岐が増えロジックの管理が煩雑になっ てしまいます。わたし自身、いざ整理しようと思って後からプログラム の分割をしたことがありますが大変な労力が必要でした。
Silverlight には画面を定義するうえで強力な武器となる XAML が使えるので XAML も利用できるような仕組みを考えたいと思います。 ちなみに私は XAML がうまく使えませんが、過去に XNA でテキスト ボックスを実装したことに比べれば XAML を使ったほうが遥かに楽です!
画面遷移では、フェードイン・フェードアウトといったエフェクトを つけるとクオリティが上がってカッコよく見えるのでエフェクトも利用 できるようにします。また、エフェクトは色々なエフェクトを差し替え できるように作っておくと後々使い回しが効くので開発が楽になります。
画面遷移はインターネットブラウザのように「進む」と「戻る」とい う遷移方法を用意しておくとよいです。RPG のように戦闘シーンに画面 を切り替えて、戦闘が終わったらフィールドに戻るというのが楽になり ます。
以上の内容から以下のような機能を定義しました。
- Silverlight ユーザーコントロールを画面とする
- フェードイン・フェードアウトのようなエフェクトを部品化
- 遷移方法は「戻る」を可能とする
プログラムの全容は後々公開したいと思いますが、前回からの変更 が大きいので、画面部分だけ載せておこうと思います。ライブラリが できあがると各シーンはこのような形で実装できると思います。
実行結果は以下のようになります。四角い枠の中をクリックして
[Enter] キーを押すたびに「画面1」と「画面2」が切り替わります。