ここで質問があります。(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 関数内にあると思いますか? ヘルプやガイダンスを心から感謝します。:)