SHOEISHA iD

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

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

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

特集記事

C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる(4)

15年前の入門書の課題を、最新の開発環境を使って再挑戦

プログラムの改良

コートを改良してみる

 完成したプログラムを実行してみると、追加したい機能や改良すべき点についてのアイデアがたくさん出てくるでしょう。C++Builderでは、フォームを継承して新しいフォームを作成することができるので、基本のゲームを作成してから、これらを継承して改良されたゲームを作成することもできます。

 また、FireMonkeyの高度なグラフィック機能を用いて、よりモダンな視覚効果を用いたゲームに改良することもできます。ここでは、ゲームのコートをただの黒色ではなく、芝をイメージした緑色の画像を配置するように改良してみましょう。

 ラケットゲームのコートは、Courtという名称のPanelでした。このPanelに対して、BlackPanelというスタイルを設定しています。BlackPanelは、単に黒い背景を設定しているだけです。これに対し、新しく芝のイメージを配置するスタイルを作成すれば、Courtに対して設定しているスタイルを入れ替えるだけで、芝のコートに変えることができます。

カスタムスタイルの作成

 設計画面でCourtを選択します。マウスの右ボタンを押して、表示されたポップアップメニューから[カスタムスタイルの編集]を選択します。

 新しいスタイルを作成します。ツールパレットのShapesカテゴリからTRectangleコンポーネントをドラックし、スタイルエディタの「スタイルの作成」の部分にドロップします。

図3 TRectangleをドロップ

 newstyle1という新しいスタイルがリストに追加されるので、オブジェクトインスペクタ上でStyleNameプロパティを変更します。

newstyle1
プロパティ
StyleName GrassPanel

  次に、芝のイメージ画像を設定します。オブジェクトインスペクタで、Fillプロパティを展開し、Fill.Bitmap.Bitmap プロパティの[...]ボタンをクリックします。表示されたメニューから[編集]を選択します。

図4 ビットマップエディタ

 ビットマップエディタが表示されるので、[読み込み]ボタンをクリックし、芝のイメージの画像を読み込みます。

 [OK]ボタンを押して、読み込んだ画像を確定し、ビットマップエディタを閉じます。

 最後に、ブラシによって塗られるパターンを指定するFill.Kindプロパティを設定します。

GrassPanel
プロパティ
Fill.Kind bkBitmap

 これで芝のイメージの画像が適用されたスタイル GrassPanelの設定は完了です。[適用して閉じる]をクリックし、作成したスタイルを保存します。

スタイルの適用

 スタイルエディタから設計画面に戻り、Courtを選択します。オブジェクトインスペクタ上で、StyleLookupプロパティの値を変更します。

Court
プロパティ
StyleLookup GrassPanel

 すると、Courtが緑の芝のイメージに変わります。少し高級感が出てきました。

図5 GrassPanelの適用

まとめ

 ほぼ1か月間、4回にわたって連載してきた「C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる」も、これで終了です。この連載記事のきっかけは、15年前の書籍を手にとって、「この演習、最新バージョンでも同じように作れるのかな?」と疑問を抱いたことでした。実際、VCLアプリケーションであれば、ほとんど変更することなくそのまま動いたため、少しグレードアップして、FireMonkeyによる開発にトライしてみたわけです。

 FireMonkeyを用いれば、高度なグラフィック機能を、コンポーネントのプロパティを設定するだけで簡単に利用できるほか、Windows以外に、Mac OS Xでも動作させることができます。さらに、先日のデベロッパーキャンプでは、iOSやAndroidにも対応するという発表がなされており、モバイルデバイスへの拡張も期待できます。

 ぜひ皆さんもC++Builder+FireMonkeyを使って、ビジュアルC++開発に挑戦してみてください。

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

EDN編集部(イーディーエヌ編集部)

エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6651 2012/07/12 14:00

イベント

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

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

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

メールバックナンバー