2011-12-16 7 views
1

cocos2d iOSスプライトのタッチ優先度を変更する方法はありますか?私が持っているのは画面上に複数のカードがあり、あなたの手にそれらを持っているときと同じように、アークで配列されています。だから、この設定では、それらが重なって、私はどのカードがタッチされたかを認識する必要があります。私はカードの各頂点の座標を測定し、カードの可視領域を決定し、接触がその領域の中に作られたかどうかを確認することができました(私はできませんでした)が、これに対処するより簡単な方法があると思いました。タッチの優先度を変更するといいですか?これは、画面に最も近いカードが最も高い優先度を持ち、バックグラウンドへの途中で減少し続けることを意味します。そのため、一度に2つのスプライトでタッチが行われたとしても(上のものと下のもの)、優先度の高いスプライトにのみ登録してください。スプライトが重なっているときのタッチ優先度を変更する方法

インターネットで読むと、スプライトとレイヤーの優先度を変更して、レイヤーまたはスプライトでタッチをしたかどうかを定義する方法しかわかりませんでしたが、それは私が望むものではありません。

答えて

0

私が知る限り、デフォルトでは正確にその動作が得られ、スプライトは(z軸上で)より優先されます。しかし、彼らは彼らの後ろのものにもイベントを渡すと思う。だから、あなたがする必要があると思うのは、あなたのスプライトのいずれかに着くときにイベントを食べることです。これを行うには、「touchBegin」メソッドを上書きするときにNOを返します。それが役に立てば幸い。

+0

ねえ、ありがとうございます。私は似たようなことをしましたが、タッチが検出されたときにtouchBeganでTRUEを返したため、return文が実行されると直ちに関数を終了する必要があるため、タッチがさらに煮沸されません。 – Prst

関連する問題