gpt4 book ai didi

iphone - 如何判断您是否触摸了 CCLabel?

转载 作者:行者123 更新时间:2023-12-03 19:46:55 25 4
gpt4 key购买 nike

如何判断您是否触摸了 CCLabel?

下面的代码显然不能很好地工作,因为它只测试点相等性。当然,触摸点不一定等于 CCLabel (CCNode) 的位置属性。如何判断触摸点是否落在“矩形”内? CC 标签?

- (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 方法测试该点是否包含在矩形中,如下所述:http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html#//apple_ref/c/func/CGRectContainsPoint

要获取 CCLabel 的边界框,请遵循我的 cocos2d 常见问题解答中的建议:如何获取 Sprite 的边界框矩形: http://www.learn-cocos2d.com/knowledge-base/cocos2d-iphone-faq/learn-cocos2d-public-content/manual/cocos2d-general/14813-how-to-get-a-sprites-bounding-box-bounding-rectangle-with-code

它将向 CCSprite 添加一个 Objective-C 类别,因此它的行为类似于 CCSprite 成员方法。由于 CCLabel 是 CCSprite 的子类,因此这也可以工作。你可以这样调用它:

CGRect bbox = [label getBoundingRect];

关于iphone - 如何判断您是否触摸了 CCLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com