Why do touches only get detected ABOVE my CCBitmapFontAtlas and not ON it? (cocos2d)
Posted
by RexOnRoids
on Stack Overflow
See other posts from Stack Overflow
or by RexOnRoids
Published on 2010-05-23T08:05:29Z
Indexed on
2010/05/23
8:10 UTC
Read the original article
Hit count: 192
I am detecting touches for CCBitmapFontAtlas (just text labels) as shown in the code below. But it seems that touches are only detected slightly ABOVE the CCBitmapFontAtlases? Did something get screwed when converting between coordinate systems?
(*Note objects label1, label2, etc are CCBitmapFontAtlas)
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
self.myGraphManager.isSliding = NO;
CGRect rectLabel1 = CGRectMake(label1.position.x, label1.position.y, label1.contentSize.width, label1.contentSize.height);
CGRect rectLabel2 = CGRectMake(label2.position.x, label2.position.y, label2.contentSize.width, label2.contentSize.height);
CGRect rectLabel3 = CGRectMake(label3.position.x, label3.position.y, label3.contentSize.width, label3.contentSize.height);
CGRect rectLabel4 = CGRectMake(label4.position.x, label4.position.y, label4.contentSize.width, label4.contentSize.height);
CGRect rectLabel5 = CGRectMake(label5.position.x, label5.position.y, label5.contentSize.width, label5.contentSize.height);
CGRect rectLabel6 = CGRectMake(label6.position.x, label6.position.y, label6.contentSize.width, label6.contentSize.height);
if(CGRectContainsPoint(rectLabel1, location)){
NSLog(@"Label 1 Touched");
}else if(CGRectContainsPoint(rectLabel2, location)){
NSLog(@"Label 2 Touched");
}else if(CGRectContainsPoint(rectLabel3, location)){
NSLog(@"Label 3 Touched");
}else if(CGRectContainsPoint(rectLabel4, location)){
NSLog(@"Label 4 Touched");
}else if(CGRectContainsPoint(rectLabel5, location)){
NSLog(@"Label 5 Touched");
}else if(CGRectContainsPoint(rectLabel6, location)){
NSLog(@"Label 6 Touched");
}
}
}
© Stack Overflow or respective owner