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

CodeZine / 2012年6月4日 14時0分

図10 とりあえず実行してみる

 15年前のC++Builder入門書で紹介されていたクラシックなラケットゲームを、最新のC++Builder XE2とFireMonkeyフレームワークを使って再構築してみます。最新の開発環境を使うことで、改めてC++Builderのビジュアル開発の仕方を理解するとともに、旧バージョンとの違いも明らかになるでしょう。

■はじめに

 今から15年前、業界初のC++向けのビジュアルRADツール「C++Builder」が発売されました。マウス操作で部品を配置してアプリケーションを開発するツールとしては、当時「Delphi」と「Visual Basic」がありましたが、C++は初めて。それまでクラスライブラリと格闘してGUIを作成していたため、なんて便利なんだろうと思ったものです。

 時代は変わり、Web系の開発に適した言語にフォーカスが当たっていきましたが、今、スマートフォンをはじめとするマルチデバイスの中で、C++の役割も見直されています。そんな中、C++BuilderがiOSやAndroidにも対応するというアナウンスがありました。

 「C++Builderも15年目で大きく飛躍するのか」と思い、昔を懐かしんで当時の書籍を取り上げてみたところ、クラシックなラケットゲームの演習課題を見つけました。アスキー出版局の「Borland C++Builder入門」(著・藤井等、監修・ボーランド)。確か日本で最初のC++Builderの書籍です。

 今回は、懐かしい演習課題に、最新バージョンXE2を使ってもう一度取り組んでみようと思います。ちょうどXE2には、表現力豊かなHD/3Dグラフィックを簡単に扱えるFireMonkeyコンポーネントがあります。以前より、ちょっとリッチなインターフェイスになったゲームの製作を通して、最新バージョンでの開発の違いもあぶりだせるのではないかと思います。

●ゲームの概要

 これから作成するゲームは、左右に動くラケットで壁に跳ね返るボールを打つ簡単なものです。左右の矢印キーでラケットを動かし、ボールを打ちます。ボールを1回打つと得点が加算され、打ち損なうとラケットは没収です。ラケットは全部で5つ用意することにします。ボールは、打ち返すたびに加速するようにしましょう。速いボールを打てばそれだけ高得点が得られるようにします。

図1 ゲームプログラム


●どのコンポーネントを使うか

 今回、15年前の書籍の内容を、最新の開発環境で再現するにあたり、最新環境ならではの機能を使ってみることにします。

 FireMonkeyは、Delphi/C++Builder XE2に新たに搭載されたコンポーネントフレームワークで、Windows/Mac OS Xなどマルチプラットフォームのサポートに加えて、HD/3Dの高品質なベクターグラフィックを簡単に利用できます。FireMonkeyには従来のVCLと類似のコンポーネントもあり、比較的簡単に新しいフレームワークにもなじみやすく、簡単に開発を進めることができます。

 ラケットやボールは、Labelコンポーネントを用いて表現します。Labelの位置は、プログラム中で変更することも可能なため、動くボールやラケットを表すことができます。FireMonkeyには、表面にテクスチャを貼り付けることのできる3Dオブジェクトも用意されているので、よりリアルなボールやラケットを作成することも可能です。


CodeZine

トピックスRSS

ランキング