0
我需要在彈窗上顯示UIActionSheet,並且此彈窗具有指向Cocos2D上的元素的箭頭。Cocos2D 2.0 - 將boundingBox座標轉換爲導演視圖空間
我需要在導演視圖所在的座標UIActionSheet會顯示方面來計算該元素的boundingBox的矩形,所以動作片箭頭會指向它。
我該怎麼做?
我需要在彈窗上顯示UIActionSheet,並且此彈窗具有指向Cocos2D上的元素的箭頭。Cocos2D 2.0 - 將boundingBox座標轉換爲導演視圖空間
我需要在導演視圖所在的座標UIActionSheet會顯示方面來計算該元素的boundingBox的矩形,所以動作片箭頭會指向它。
我該怎麼做?
這是一個快速的示例中,我創建的,就在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];
都能跟得上。這不是給我正確的座標。 X似乎或多或少是對的,但Y是完全錯誤的。 – SpaceDog
注意:這個精靈是在一個圖層內的另一個精靈......這是否有什麼區別? – SpaceDog
是的,它很重要,邊界框返回不同的座標,在主圖層上的精靈上試試這個。看看它是否正確 –