如何将节点位置转换为UIKit位置?

时间:2013-05-05 13:20:15

标签: ios cocos2d-iphone uikit

scoreLabel是cocos节点。

scoreLabel.position = ccp(_dialogSprite.contentSize.width/2, _dialogSprite.contentSize.height/2 + 60);

现在我正在尝试将节点的位置转换为UIKit,因此UITextField将位于完全相同的位置。

CGPoint pnt = [[CCDirector sharedDirector] convertToUI:scoreLabel.position];
[txtField setFrame:CGRectMake(pnt.x, pnt.y, 200, 30)];

txtField低得多,位于左侧。

2 个答案:

答案 0 :(得分:0)

坐标是正确的,但您必须考虑UIView的原点:UIview锚定在其左上角,就好像它是一个cocos节点,其anchorPoint设置为0,1。

答案 1 :(得分:0)

Cocos2d和UI坐标之间的变化。

x - same
y = height - y

示例:

Cocos2d winsize =(480,320) 节点位置= ccp(100,200)

然后UI位置=(100,320-200)//(x,height-y)

正如LearnCocos2d所说,默认锚点在UIKit中为(0,0),在cocos2d中为(0.5,0.5)