1
我做了这个ccTouchBegin方法:ccTouchBegin触摸点不被正确读取
- (BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
CGPoint pos = [self getChildByTag:1].position;
CGSize size = [self getChildByTag:1].contentSize;
float padding = 3;
float w = size.width+padding*2;
float h = size.height+padding*2;
// first row
CGRect rect1 = CGRectMake(pos.x-w/2, pos.y-h/2, w/3, h/3);
CGRect rect2 = CGRectMake(pos.x-(w*(2/3)/2), pos.y-h/2, w/3, h/3);
CGRect rect3 = CGRectMake(pos.x+(w*(2/3)/2), pos.y-h/2, w/3, h/3);
//second row
CGRect rect4 = CGRectMake(pos.x-w/2, pos.y-(h*(2/3)/2), w/3, h/3);
CGRect rect5 = CGRectMake(pos.x-(w*(2/3)/2), pos.y-(h*(2/3)/2), w/3, h/3);
CGRect rect6 = CGRectMake(pos.x+(w*(2/3)/2), pos.y-(h*(2/3)/2), w/3, h/3);
//third row
CGRect rect7 = CGRectMake(pos.x-w/2, pos.y+(h*(2/3)/2), w/3, h/3);
CGRect rect8 = CGRectMake(pos.x-w/2, pos.y+(h*(2/3)/2), w/3, h/3);
CGRect rect9 = CGRectMake(pos.x-w/2, pos.y+(h*(2/3)/2), w/3, h/3);
if (CGRectContainsPoint(rect1, location)) {
NSLog(@"rect1");
} else if (CGRectContainsPoint(rect2, location)) {
NSLog(@"rect2");
} else if (CGRectContainsPoint(rect3, location)) {
NSLog(@"rect3");
} else if (CGRectContainsPoint(rect4, location)) {
NSLog(@"rect4");
} else if (CGRectContainsPoint(rect5, location)) {
NSLog(@"rect5");
} else if (CGRectContainsPoint(rect6, location)) {
NSLog(@"rect6");
} else if (CGRectContainsPoint(rect7, location)) {
NSLog(@"rect7");
} else if (CGRectContainsPoint(rect8, location)) {
NSLog(@"rect8");
} else if (CGRectContainsPoint(rect9, location)) {
NSLog(@"rect9");
}
return YES;
}
它的简单,它采用触摸点,然后得到一个孩子的contentsize和位置并划分那里的孩子所在的地方组成一个3x3的表格。但现在它不工作,即使我尝试触摸整个屏幕,我也没有收到任何NSLog。任何想法什么是错的?
这解决了我的问题 - 谢谢! – Greg