1

私は2つのclayerを持っています。最上位の cclayer には (ccnode から派生した) いくつかのオブジェクトがあり、マルチタッチが有効になっています。これらのオブジェクトへのタッチを検出するために cctouchesbegan を使用します。それはすべて正常に動作します。

しかし、一番上のcclayerの下に、別のマルチタッチ対応cclayerが必要です。オブジェクトが上部の cclayer に触れていないときはいつでも、下部の cclayer がタッチに反応するようにしたいと思います。一番下の cclayer は基本的にただの無地の背景で、触れたときに反応するようにしたいです。現在、両方のcclayerが同時にタッチに反応しています。

シングルタッチでは、これは touchdispatcher と優先順位の設定で簡単に解決できることを知っています。しかし、両方のcclayerがマルチタッチ対応であることが重要であるため、私は立ち往生しています。

これに対する解決策はありますか?

4

1 に答える 1

1

複数のタッチ: 最上層でのみタッチ入力を有効にします。最上位レイヤーが、レイヤーのスプライトのいずれかでタッチが開始されていないと判断した場合、最下位レイヤーで同じ ccTouchesBegan メソッドを呼び出すだけです。その特定のタッチの後続のすべてのイベント (移動、終了) についても同じです。

シングル タッチ: レイヤーがタッチを処理し、他のレイヤーもそのタッチを処理してはならない場合は常に、ccTouchBegan から YES を返します。

于 2013-03-31T16:09:18.967 に答える