Проблема я сталкиваюсь в том, что позиции лейбла CCLabelBMFont и один из CCSprite символов, составляющих этот ярлык, кажется, отличается, так что я не могу управлять сенсорными события ...регистрирующие затрагивает CCSprite символов лейбла CCLabelBMFont
Чтобы проверить более подробно этот вопрос я попытался это:
-(id)init
{
if ((self = [super init])
{
CCLabelBMFont *label = [CCLabelBMFont labelWithString:"welcome" fntFile:@"Arial.fnt"];
CGSize size = [[CCDirector sharedDirector] winSize];
label.position = ccp(size.width/2, size.height/2);
[self addChild: self.label];
self.isTouchEnabled = YES;
}
return self;
}
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:[touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation];
NSLog(@"point touched: x:%f, y:%f", touchLocation.x, touchLocation.y);
for (CCSprite *character in [label children])
{
if (CGRectContainsPoint([character boundingBox], touchLocation))
{
[character setColor:ccRED];
}
}
}
И все, что письмо этикетки я потрогать это не покраснеет, как это должно быть.
И причина, почему я считаю, что положение спрайтов, составляющие CCLabelBMFont и метка сами по себе различны, что, когда я вставляю:
NSLog(@"character position: x:%f y: %f", character.position.x, character.position.y);
в обработке ccTouchesBegan касания, положение спрайтов перечислены чтобы быть в левом нижнем углу экрана.
Так что, может быть, мне не хватает чего-то простого, но есть ли способ конвертировать положение спрайтов в одно и то же место с меткой, чтобы можно было распознать штрихи на буквах ярлыка?
Заранее спасибо.
Спасибо большое, теперь она прекрасно работает для первой буквы моего слова, но для других я должен прикасаться дальше справа от отображаемого слова, чтобы они также стали красными, не знаете ли вы, откуда это могло произойти? – PoohKun