ゲームの実装を行う

2011年4月18日(月)
北村 真二

駒移動のイベント伝達

「駒」はGameObjectViewとして生成される。このクラスはUIViewのサブクラスなのでGameBoardViewに addSubview: されて配置される。そしてGameControllerに保持されると同時にGameBoardViewの持つGameBoardTileにも登録される。そして以下のように移動イベント伝達が行われる。

  • (1)GameBoardViewがタッチイベントを受け付ける
  • (2)コントローラークラスにその座標を伝える
  • (3)GameBoardViewに問い合わせてタッチ位置のGameBoardTileを得る
  • (4)GameObjectViewに移動先としてそのGameBoardTileを設定する
  • (5)移動先を設定されたGameObjectViewはそのタイルに向かって移動する

図2:駒移動のイベント伝達(クリックで拡大)

まず、全体を管理するGameControllerでの移動を制御するためのメソッドが以下になる。これはGameBoardViewのデリゲートメソッドだ。pieceViewがGameObjectViewのインスタンスであり、これをGameControllerがプロパティーとして保持している。

<GameController での実装>

タップされた位置のヒットテスト

移動の開始はまず「ゲームの盤面」をタップすることから始まる。これを行うのがGameBoardViewだ。UIViewのスーパークラスであるUIResponderのタッチイベントを取得する以下のメソッドを実装し、それをデリゲートオブジェクト(GameController)に通知する。そしてGameBoardViewからタッチ位置のGameBoardTileを得る。

<GameBoardView での実装>

<GameBoardTile での実装>

  • 「ゲームの実装を行う」サンプルプログラム

STUDIO SHIN

家庭用ゲームの企画開発、Mac OS / iOSアプリの開発を主な生業とする。
20年ほど前から家庭用ゲーム開発に携わりファミコンからDS、PSP、Wiiまで幅広く開発。15年前からMac OS Xアプリケーションを開発「DotShotX」「GIFQuickMaker」などを公開。iPhoneアプリ「将棋盤」「DotTouch」「Rabbit Maze」などを開発。開発アプリはアップルのApp Storeで公開中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています