Cocos2D 2.0 - 将boundingBox坐标转换为Director视图空间

时间:2012-06-15 01:48:34

标签: cocos2d-iphone

我需要在弹出窗口上显示一个UIActionSheet,这个popover有一个箭头指向Cocos2D上的一个元素。

我需要根据将显示UIActionSheet的导演视图坐标来计算此元素的boundingBox rect,因此操作表箭头将指向它。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

这是我创建的一个快速示例,只需将UIPopoverController更改为您的UIActionSheet。

CCNode* node = (CCNode *)sender;
CGPoint worldPoint = [node convertToWorldSpace:CGPointZero];
CGRect rect = [sender boundingBox];
rect.origin = worldPoint;
// Convert position based on Apple's anchor point from cocos2d's anchor point
rect.origin.y = rect.origin.y + rect.size.height;
CGPoint convertedLocation = [[CCDirector sharedDirector] convertToUI:ccp(rect.origin.x, rect.origin.y)];
rect.origin = convertedLocation;

UIViewController* viewController= [[UIViewController alloc] init];
[[viewController view] setBackgroundColor:[UIColor greenColor]];
UIPopoverController* c = [[UIPopoverController alloc] initWithContentViewController:viewController];
[c presentPopoverFromRect:rect inView:[[CCDirector sharedDirector] view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];