0

たとえば、10 個の長方形のスプライトがあり、ランダムな幅、高さ、位置、および z-index を使用してそれらを生成するとします。そして今、方法

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

と呼ばれます。どのスプライトがタップされているかを知るにはどうすればよいでしょうか? タップされたポイントがスプライトの長方形の境界内にあるかどうかをチェックするテクニックがあることは知っていますが、上記の場合、四角形 A が上端の角で四角形 B の上にあり、四角形 B の上端の角が上にある場合はどうなりますか?タップされている場合、タップされているのは四角形 A である可能性があります。タッピング ポイントは実際には両方の四角形の内側にあります。

手動で行う必要があり、z-index を考慮する必要がありますか? (おそらく、最高の z-index から最低までのすべてのスプライトをループします)。

スプライトが三角形で回転している場合はどうなりますか? Cocos2d にそれを処理する組み込みの方法はありませんか?

(これは、数日前に Core Graphics のサンプル コードを実行したためです...その場合、メイン ビュー用とサブ ビュー用の 2 つのタップ イベントが発生し、どのビューを確認できるかを確認できます。ユーザーが計算を行わずにタップしたことです)

4

1 に答える 1

1

考えられる解決策は、自分自身を CCStandardTouchDelegate または CCTargetedTouchDelegate のデリゲートとして宣言する CCSprite のサブクラスです。次に、これらのデリゲート メソッドでスプライトに対して適切な操作を実行します。

于 2012-05-01T16:07:44.390 に答える