連載 :
実践!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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。