在这里有一个问题。我在我的 (id)init 函数中创建了几个精灵(带有标签),然后只是试图检测哪个精灵被触摸了?我的 init 函数的代码片段粘贴在下面。
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"blue_sheet.plist"];
//create a sprite batch node
CCSpriteBatchNode *TrainerSprites = [CCSpriteBatchNode batchNodeWithFile:@"blue_sheet.png"];
[self addChild:TrainerSprites z:1];
//create a sprite from that node
CCSprite *Horse = [CCSprite spriteWithSpriteFrameName:@"horse_blue.png"];
[TrainerSprites addChild:Horse z:1 tag:1];
//Horse.position = ccp(winSize.width/5, winSize.height/2);
[Horse setScaleX: 138.5/Horse.contentSize.width];
[Horse setScaleY: 80/Horse.contentSize.height];
//create a sprite from that node
CCSprite *Cow = [CCSprite spriteWithSpriteFrameName:@"cow_blue.png"];
[TrainerSprites addChild:Cow z:1 tag:2];
//Cow.position = ccp(winSize.width/2, winSize.height/2);
[Cow setScaleX: 126/Cow.contentSize.width];
[Cow setScaleY: 100/Cow.contentSize.height];
Horse.position = ccp(4*winSize.width/5, winSize.height/2);
Cow.position = ccp(winSize.width/5, winSize.height/2);
CGRect pos1 = CGRectMake(Cow.position.x, Cow.position.y, 200, 100);
CGRect pos2 = CGRectMake(Horse.position.x, Horse.position.y, 200, 100);
self.touchEnabled = YES;
一切看起来都很好......并且精灵出现在它们应该出现的位置。当我触摸屏幕上的任何位置时,我的 ccTouchBegan 函数就会触发。没有看到 CGRect 发生任何事情,我想我需要确定分配的标签触发了哪一个。是的,确实,我知道我缺少代码,我只是无法在任何地方找到好的可靠文档如何执行这个看似基本的 ios 功能。我假设“精灵触摸检测”代码应该驻留在 ccTouchBegan 函数中?真诚感谢任何帮助或指导。:)