はじめに
5年前に「C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる」という記事を執筆し、古いラケットゲームのソースを引っ張り出してきて、WindowsとMacの双方に対応したC++Builderの機能を使って、マルチOS対応のゲームアプリケーションを作成する手順を紹介しました。あれから5年が経過し、C++Builderも満20歳を迎え、Windows、Macだけでなく、iOS、Androidにも対応したマルチデバイス開発ツールへと成長し、モバイル開発もC++でできるようになっています。
ということで、再びこのラケットゲームのソースを取り出し、今度はiOS向けに再構築してみることにします。せっかくのモバイルアプリですから、サウンドやタップ操作などにも対応し、イケてる感じのレトロゲームに仕上げたいと思います。
ゲームの概要
ゲームは、左右に動くラケットで壁に跳ね返るボールを打つ簡単なものです。左右の方向ボタンとタップ操作でラケットを動かし、ボールを打ち返します。ボールを1回打つと得点が加算され、打ち損なうとラケットは没収です。ラケットは全部で5つ用意することにします。ちょっと懐かしいですね。
ボールは、打ち返すたびに加速するようにしましょう。速いボールを打てばそれだけ高得点が得られるようにします。最初のソースは、アスキー出版局で出版された『Borland C++Builder入門』(著・藤井等、監修・ボーランド)に掲載されています。こちらはWindowsのみですが、今回は、マルチデバイスアプリケーションの新規プロジェクトから再構築します。
ソースコード、関連情報は?
今回作成したアプリのソースコードは、GitHubで入手できます。
今回のターゲットプラットフォームはiOSなので、無料で入手できるC++Builder Starterではビルドできません。無料版で試してみたい方は、C++Builderトライアル版をダウンロードしてください。
ちなみにC++Builderを購入する場合には、SEshopで実施しているキャンペーンを確認されることをお勧めします。
マルチデバイスアプリケーションの作成
マルチデバイスアプリケーション構築に対応したコンポーネント
マルチデバイスアプリケーションの開発には、C++Builderに搭載されたFireMonkeyと呼ばれるコンポーネントライブラリを使います。
FireMonkeyは、Delphi/C++Builder XE2から搭載されたコンポーネントフレームワークで、Windows、macOS、iOS、Androidの4つのプラットフォーム向けのネイティブアプリケーションの構築に対応しています。従来のコンポーネントフレームワークはVCLでしたが、こちらもWindows 10に対応するなど進化を続けています。FireMonkeyは、マルチプラットフォームのサポートに加えて、HD/3Dの高品質なベクターグラフィックを簡単に利用できるので、今回のようなエンタテイメント系アプリでも凝った作りができたりします。
それでは開発を始めましょう。UIの設計は、以前作成したWindows、macOSのマルチデバイスアプリケーションの作成と全く変わらないことに驚かれるかもしれません。
マルチデバイスアプリケーション | 新規プロジェクトを作成
C++Builderで、マルチデバイスアプリケーションを作成するには、[ファイル|新規作成|マルチデバイスアプリケーション - C++Builder]を選択します。表示されたダイアログで「空のアプリケーション」を選択すると以下のように、マルチデバイスアプリケーションプロジェクトが作成されます。
表示されたフォームのプロパティを次のように設定します。
プロパティ | 値 |
---|---|
Name | GameForm |
Caption | Retrospective Racket Game |
このフォーム(ユニット)は、GameUnitという名前で保存します。プロジェクト名は、RacketGameで保存します。
図3を参考にPanelを配置します。上部のPanelは、レイアウト用のためデフォルトの名前で十分ですが、下部のPanelはコーディングでも使用するので、わかりやすい名前をつけておきましょう。
プロパティ | 値 |
---|---|
Name | Panel1 |
Align | Top |
プロパティ | 値 |
---|---|
Name | Court |
Align | Client |