0

タッチ可能なすべてのスプライトを保持するクラスを通じて、手動でタッチを処理しています。また、すべてのメニューは でありCCLayer、あるメニューから別のメニューに変更するときは、 を使用しCCTransition###て新しいシーンを取得します。

したがって、レイヤーは「まだそこに」あり、1つのメニューに触れると、前のレイヤーもそれを受け取ります...新しいCCLayerでゲームを開始したときのように、メニューはマルチタッチの影響を受けます...

シングルタッチなら飲み込めるけど、ゲームはマルチタッチじゃなきゃ…

私に何ができる?皆さん、ありがとうございました!

4

3 に答える 3

1

このように、最上位レイヤーの優先度を 0、その下のレイヤーの優先度を 1 に設定できます。

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self 優先度:0 ツバメタッチ:YES];

于 2012-05-07T04:33:31.447 に答える
1

必要なレイヤーでタッチイベントを消費する必要があります。レイヤーがそれを消費した後、タッチは「前の」レイヤーに伝播されなくなります。

http://www.cocos2d-iphone.org/api-ref/0.9.0-beta/_c_c_touch_delegate_protocol_8h_source.html

タッチ イベントを消費するには、ccTouchBeganデリゲート メソッドで YES を返します。

編集:一致するようにメソッド名を変更CCStandardTouchDelegate

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
   if (condition)
      return YES;
   else 
      return NO;
}
于 2012-05-03T18:22:03.663 に答える
0

プロパティを使用してみることができます

self.isTouchEnabled = NO;

レイヤー内では、タッチを受け取りたくありません。

オブジェクトを使用CCButtonする場合は、それらを無効にする必要があります。

それが役立つことを願っています...

こんにちはアンセルム

于 2012-05-03T18:13:57.860 に答える