AppDelegate でマルチタッチを有効にしました。私のゲーム シーン InputLayer では、いくつかの CCMenuItemSprite をボタンとして使用し、SneakyJostic をコントローラーとして使用する CCMenu を追加しました。私の入力レイヤーでは、CCMenu と SneakyJoystic コントローラーの外部で一部のユーザー タッチを評価できるようにするため、この方法で "Standard Touch Delegate" プロトコルに準拠してタッチを有効にしました。
ユーザーの指の位置がメニューまたはジョイスティック インスタンスの上に達したときに、ユーザーが SneakyJoystick または CCMenu クラス インスタンスのいずれかの領域外で画面にタッチし始めると、タッチはインスタンスによって検出されず、代わりに touchMoved の制御下に置かれます (および/または次に touchEnded) シーン レイヤーのメソッド。
これを防ぐ方法はありますか?つまり、外部で開始されたタッチを制御するメニューまたはジョイスティック インスタンスを取得するにはどうすればよいでしょうか?
Cocos2d のドキュメントを読むと、CCMenu は既にマルチタッチ プロトコルに準拠しているように見えるため、その優先度を上げることができるはずです。しかし、私はこれを台無しにすることを恐れています。レイヤーの優先度を変更しようとしましたが、クラッシュしました。
助言がありますか?
編集: さまざまな本で見つけたさまざまなサンプル プロジェクトで、私が説明していることを確認できます。基本的に、誰かが "SneakyJostic" を使用したり、レイヤーに "CCMenu" を追加したりするたびに (任意のプロジェクトで)、オブジェクトの外側からタッチを開始し、オブジェクトに触れている指ユーティリティを移動すると、それは検出されません。アプリをクラッシュさせずにこれを修正するにはどうすればよいですか?