タップとドラッグを区別する方法
アプリを作成していて、画面上でスプライト(2つ目のスプライトを上にして)をドラッグできるようにアプリを作成しようとしていますが、スプライトをタップするだけで他のメソッドが呼び出されます。 スプライトの端に触れるとドラッグがうまく機能しましたが、スプライトの中央(2番目のスプライトが上にあるところ)からドラッグしようとすると、ドラッグがまったく機能しませんが、タップが呼び出されます。 なぜこれを行わないのか、わかっています。両方のスプリットからのタッチが競合しています。なぜなら、一番上のタッチが下の2番目のタッチに当たる前にタッチを飲み込んでいるからです。 指が動いたときにスプライトをドラッグしたいが、タップのみが与えられたときにタップを登録したい(つまり、指が画面上で動かなかった)場合、これをどのように実装できますか? 私が作業しているスプライトのビジュアル(役立つ場合): 黄色のルーンはその下の石とは別のスプライトです(アニメーションが含まれているため)。 --------Touch for the top sprite---------- -(BOOL) ccTouchBegan:(UITouch*)touch withEvent:(UIEvent *)event{ lastTouchLocation = [RuneScene locationFromTouch:touch]; BOOL isTouchHandled = CGRectContainsPoint([charSprite boundingBox], lastTouchLocation); return isTouchHandled; } -(void) ccTouchEnded:(UITouch*)touch withEvent:(UIEvent *)event{ NSLog(@"Tap received!"); } ------Touch for the bottom sprite-------- -(BOOL) ccTouchBegan:(UITouch*)touch withEvent:(UIEvent *)event{ lastTouchLocation = [RuneScene locationFromTouch:touch]; BOOL isTouchHandled …