PR

ゲームの実装を行う

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 での実装>

Think IT会員限定特典
  • 「ゲームの実装を行う」サンプルプログラム

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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