[英]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.