CCBigSprite 和 CCSmallSprite 类继承自 CCSprite。
spr1,spr2 是它们的实例。
所有 ccTouchesStart、ccTouchesMove、ccTouchesEnd 方法都从协议 CCTargetedTouchDelegate 覆盖,用于这两个类。
问题:在正常情况下,触摸事件按预期工作并且适用于任何精灵实例,直到精灵重叠。
如果触摸 (CCSmallSprite *spr2),则触摸事件适用于 (CCBigSprite *spr1)。
由于此处存在重叠问题以及如图所示的确切位置。
当我按下 spr2 时,它的触摸事件应该起作用,而不是 sp1。
我该如何解决这个致命的问题?
两个类都具有相同的重写方法:
-(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 稳定版的问题吧?