CCBigSprite および CCSmallSprite クラスは CCSprite から継承されます。
spr1、spr2 はそれらのインスタンスです。
両方のクラスのプロトコル CCTargetedTouchDelegate からオーバーライドされたすべての ccTouchesStart、ccTouchesMove、ccTouchesEnd メソッド。
問題 : 通常、タッチ イベントは期待どおりに機能し、スプライトがオーバーラップするまで、任意のスプライト インスタンスに対して適切に機能します。
(CCSmallSprite *spr2) がタッチされた場合、タッチ イベントは (CCBigSprite *spr1) に対して機能します。
ここでのオーバーラップの問題と、表示されている画像の正確な位置のためです。
spr2を押すと、sp1の代わりにタッチイベントが機能するはずです。
この致命的な問題を解決するにはどうすればよいですか?
両方のクラスには、このオーバーライドされたメソッド same があります。
-(void)onEnter {
[super onEnter];
[[[CCDirector sharedDirector]touchDispatcher]addTargetedDelegate:self
priority:self.touchPriority swallowsTouches:YES];
}
それは意味がありますか?
また、
setPriority は何も変更しませんでした。
手動で変更しています。
[spr2 setTouchPriority:1];[spr1 setTouchPriority:2];//低いほうが優先度が高いことを意味し、逆もまた同様です。役に立ちませんでした。
これは cocos2d-iphone 2.0 安定版の問題でしょうか?