古い質問のタイトル: HUD レイヤーなどの親 UIView でイベントをキャプチャする方法は?
cocos2d ではなく UI フレームワークを使用してゲームを作成しようとしています。
すべてのイベントが適切に処理された View パーシャルを作成したいと思います。それは不可能に思えます。
部分ビューとは、Ruby on Rails (および他の言語) を使用して、プレゼンテーション レイヤー (ビュー コード) の小さなチャンクをプレゼンテーション レイヤー (ビュー コード) の大きな部分に表示できるようにする方法を指します。
ゲームには、上部にスコア (およびその他のメタデータ) を含む HUD レイヤーがあり、私は使用します
[self.view addSubview:y]
また
[self.navigationController push...]
視覚的には、次のようになります (縮尺どおりではありません)。
+----------------------------+
|A |
|+--------+ +------------+ |
||B | |C | |
|| | | | |
|+--------+ | | |
| | | |
| +------------+ |
+----------------------------+
- セクション A には、メイン メニュー (プライマリ ナビゲーション) に関連するボタンがあります。
- セクション B にはスコアなどのボタンがあります
- セクション C はメイン ゲーム エリアです。
セクション A とセクション B はどちらも HUD レイヤーであり、必要に応じてクリック可能なイベントを持つことを意図しています。
同じコードを何度も繰り返したくないので、必要なビューをウィンドウに含める HUD システムがこれを達成するための最良の方法であると感じています。
私が抱えている問題は、HUD.h/HUD.m ファイルを他のビュー コントローラーに含めると、セクション C のセクション A または B のクリックを受け入れることができなくなり、イベント アクションを実行させることができないことです。メソッドがセクション C 内に存在しないと常に文句を言います。
セクション C のビューにいる場合は、A と B からのクリックを受け入れて適切に処理する必要があります。
では、HUD レイヤー システムを介してイベントをキャプチャし、イベントを適切に処理するにはどうすればよいでしょうか?
私が見た中で最も近いのは touchesBegan を使用している可能性がありますが、セクション A/B のコントローラーにあるイベントに touchesBegan イベントをリンクする方法がよくわかりません。
ありがとう。