基本上,我有一个自定义类,它有一个绘制方法,从a点到b点绘制一条线。
我是CCSprite的子类,那么该行是否有一个边界框我可以用来检测有人接触到这条线?
作为我想要完成的一个例子,我拼凑了这段代码:
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: [touch locationInView:touch.view ]];
for (Path *path in paths) {
CGRect pathRect = CGRectMake(path.position.x, path.position.y, path.contentSize.width, path.contentSize.height);
if(CGRectContainsPoint(pathRect, location)) {
CCLOG(@"Line Touched");
}
}
}
paths是Path对象的可变数组。我在方法中的每个语句之后放了日志,除了for循环之外,它都可以通过所有内容。出于某种原因,它似乎永远不会进入循环。
答案 0 :(得分:0)
答案是肯定的,你可以。您只需要确保将矩形设置为正确的大小,并将其放置在正确的原点,这就是我打破它的地方。