プログラムの改良
コートを改良してみる
完成したプログラムを実行してみると、追加したい機能や改良すべき点についてのアイデアがたくさん出てくるでしょう。C++Builderでは、フォームを継承して新しいフォームを作成することができるので、基本のゲームを作成してから、これらを継承して改良されたゲームを作成することもできます。
また、FireMonkeyの高度なグラフィック機能を用いて、よりモダンな視覚効果を用いたゲームに改良することもできます。ここでは、ゲームのコートをただの黒色ではなく、芝をイメージした緑色の画像を配置するように改良してみましょう。
ラケットゲームのコートは、Courtという名称のPanelでした。このPanelに対して、BlackPanelというスタイルを設定しています。BlackPanelは、単に黒い背景を設定しているだけです。これに対し、新しく芝のイメージを配置するスタイルを作成すれば、Courtに対して設定しているスタイルを入れ替えるだけで、芝のコートに変えることができます。
カスタムスタイルの作成
設計画面でCourtを選択します。マウスの右ボタンを押して、表示されたポップアップメニューから[カスタムスタイルの編集]を選択します。
新しいスタイルを作成します。ツールパレットのShapesカテゴリからTRectangleコンポーネントをドラックし、スタイルエディタの「スタイルの作成」の部分にドロップします。
newstyle1という新しいスタイルがリストに追加されるので、オブジェクトインスペクタ上でStyleNameプロパティを変更します。
| プロパティ | 値 |
| StyleName | GrassPanel |
次に、芝のイメージ画像を設定します。オブジェクトインスペクタで、Fillプロパティを展開し、Fill.Bitmap.Bitmap プロパティの[...]ボタンをクリックします。表示されたメニューから[編集]を選択します。
ビットマップエディタが表示されるので、[読み込み]ボタンをクリックし、芝のイメージの画像を読み込みます。
[OK]ボタンを押して、読み込んだ画像を確定し、ビットマップエディタを閉じます。
最後に、ブラシによって塗られるパターンを指定するFill.Kindプロパティを設定します。
| プロパティ | 値 |
| Fill.Kind | bkBitmap |
これで芝のイメージの画像が適用されたスタイル GrassPanelの設定は完了です。[適用して閉じる]をクリックし、作成したスタイルを保存します。
スタイルの適用
スタイルエディタから設計画面に戻り、Courtを選択します。オブジェクトインスペクタ上で、StyleLookupプロパティの値を変更します。
| プロパティ | 値 |
| StyleLookup | GrassPanel |
すると、Courtが緑の芝のイメージに変わります。少し高級感が出てきました。
まとめ
ほぼ1か月間、4回にわたって連載してきた「C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる」も、これで終了です。この連載記事のきっかけは、15年前の書籍を手にとって、「この演習、最新バージョンでも同じように作れるのかな?」と疑問を抱いたことでした。実際、VCLアプリケーションであれば、ほとんど変更することなくそのまま動いたため、少しグレードアップして、FireMonkeyによる開発にトライしてみたわけです。
FireMonkeyを用いれば、高度なグラフィック機能を、コンポーネントのプロパティを設定するだけで簡単に利用できるほか、Windows以外に、Mac OS Xでも動作させることができます。さらに、先日のデベロッパーキャンプでは、iOSやAndroidにも対応するという発表がなされており、モバイルデバイスへの拡張も期待できます。
ぜひ皆さんもC++Builder+FireMonkeyを使って、ビジュアルC++開発に挑戦してみてください。
