Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

C++Builder 10.2 TokyoでレトロなラケットゲームをiOSで再構築してみる

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/12/21 14:00

 古いラケットゲームのソースを取り出し、最新のC++Builderを使ってiOS向けに再構築してみることにします。せっかくのモバイルアプリですから、サウンドやタップ操作などにも対応し、イケてる感じのレトロゲームに仕上げたいと思います。

目次

はじめに

 5年前に「C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる」という記事を執筆し、古いラケットゲームのソースを引っ張り出してきて、WindowsとMacの双方に対応したC++Builderの機能を使って、マルチOS対応のゲームアプリケーションを作成する手順を紹介しました。あれから5年が経過し、C++Builderも満20歳を迎え、Windows、Macだけでなく、iOS、Androidにも対応したマルチデバイス開発ツールへと成長し、モバイル開発もC++でできるようになっています。

 ということで、再びこのラケットゲームのソースを取り出し、今度はiOS向けに再構築してみることにします。せっかくのモバイルアプリですから、サウンドやタップ操作などにも対応し、イケてる感じのレトロゲームに仕上げたいと思います。

ゲームの概要

 ゲームは、左右に動くラケットで壁に跳ね返るボールを打つ簡単なものです。左右の方向ボタンとタップ操作でラケットを動かし、ボールを打ち返します。ボールを1回打つと得点が加算され、打ち損なうとラケットは没収です。ラケットは全部で5つ用意することにします。ちょっと懐かしいですね。

図1 iPhone Xで実行したラケットゲームアプリ
図1 iPhone Xで実行したラケットゲームアプリ

 ボールは、打ち返すたびに加速するようにしましょう。速いボールを打てばそれだけ高得点が得られるようにします。最初のソースは、アスキー出版局で出版された『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]を選択します。表示されたダイアログで「空のアプリケーション」を選択すると以下のように、マルチデバイスアプリケーションプロジェクトが作成されます。

図2 マルチデバイスアプリケーションプロジェクト
図2 マルチデバイスアプリケーションプロジェクト

 表示されたフォームのプロパティを次のように設定します。

フォームのプロパティ
プロパティ
Name GameForm
Caption Retrospective Racket Game

 このフォーム(ユニット)は、GameUnitという名前で保存します。プロジェクト名は、RacketGameで保存します。

 図3を参考にPanelを配置します。上部のPanelは、レイアウト用のためデフォルトの名前で十分ですが、下部のPanelはコーディングでも使用するので、わかりやすい名前をつけておきましょう。

図3 Panelの配置
図3 Panelの配置
上パネルのプロパティ
プロパティ
Name Panel1
Align Top
下パネルのプロパティ
プロパティ
Name Court
Align Client

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

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

バックナンバー

連載:EDN CodeZine出張所

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5