2011-08-11 42 views
0

基本上,我有一個自定義類,它有一個繪製方法,從a點到b點繪製一條線。如果我使用ccDrawLine作爲自定義類的一部分,它可以檢測到觸摸嗎?

我對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"); 
     } 
    } 
} 

路徑是路徑對象的可變數組。我在方法中的每個語句之後都放置了日誌,並且它通過了除for循環之外的所有內容。出於某種原因,它似乎永遠不會進入循環。

回答

0

答案是肯定的,你可以。您只需確保將矩形設置爲合適的尺寸,並將其放置在正確的原點處,這正是我打破它的原點。

相關問題