簡體   English   中英

如何判斷您是否觸及過CCLabel?

[英]How to tell if you touched a CCLabel?

如何判斷您是否觸及過CCLabel?

以下代碼顯然不能很好地工作,因為它只測試點相等性。 自然觸摸點不一定等於CCLabel(CCNode)的位置屬性。 如何判斷Touch點是否落入“矩形”? CCLabel?

- (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;

  if(CGPointEqualToPoint(location, label1.position)){

   NSLog(@"Label 1 Touched");

  }else if(CGPointEqualToPoint(location, label2.position)){

   NSLog(@"Label 2 Touched");

  }else if(CGPointEqualToPoint(location, label3.position)){

   NSLog(@"Label 3 Touched");

  }else if(CGPointEqualToPoint(location, label4.position)){

   NSLog(@"Label 4 Touched");

  }else if(CGPointEqualToPoint(location, label5.position)){

   NSLog(@"Label 5 Touched");

  }else if(CGPointEqualToPoint(location, label6.position)){

   NSLog(@"Label 6 Touched");

  }

 }
}

使用CCLabel的邊界框並使用Apple的CGRectContainsPoint方法測試該點是否包含在rect中,如下所述: http//developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference html的#// apple_ref / C / FUNC / CGRectContainsPoint

要獲得CCLabel的邊界框,請在我的cocos2d常見問題解答中遵循以下建議:如何獲取精靈的邊界框矩形: http//www.learn-cocos2d.com/knowledge-base/cocos2d-iphone-faq/learn-cocos2d -public內容/手動/ cocos2d的,普通/ 14813-如何對獲得-A-精靈-邊界框,邊界矩形,用代碼

它將為CCSprite添加一個Objective-C類別,因此它的行為類似於CCSprite成員方法。 由於CCLabel是CCSprite的子類,因此也可以使用。 你這樣稱呼它:

CGRect bbox = [label getBoundingRect];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM