連載 :
実践!iOSで作るゲームアプリゲームの実装を行う
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会員限定特典
-
「ゲームの実装を行う」サンプルプログラム
Think IT会員募集中(登録無料)
会員限定特典の一例
- 記事の内容を補足する解説動画
- 解説内で使用した全ソースコード
- 連載記事をまとめた電子書籍(通常は有償販売)
- 記事や関連する製品・サービスのメルマガ
連載バックナンバー
Think IT会員サービス無料登録受付中
Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。