将一个精灵集中在屏幕中间convertToWorldSpace / NodeSpace

时间:2011-12-14 16:40:51

标签: cocos2d-iphone

我已经在这个问题上度过了很多天,我不太清楚convertToWorldSpace,convertToNodeSpace是做什么......

我有2层(CCNode),我可以缩放,一个用于平移屏幕,所以我总是缩放显示的内容,使缩放的中心在屏幕中间:

scaleLayer=[CCNode node];
scaleLayer.position= ccp( size.width /2 , size.height/2 );
[self addChild:scaleLayer z:-2000];

panLayer=[CCNode node];
panLayer.position= ccp( -size.width /2 , -size.height/2 );
[scaleLayer addChild:panLayer z:-2000];

现在我将精灵添加到panlayer: [panLayer addChild:mysprite z:2];

我想要一个按钮,当按下该按钮时,移动panlayer以使精灵在屏幕中间。 我写过这个但是只有在scaleLayer.scale = 1

的情况下才有用
CGPoint p;
p=[panLayer convertToWorldSpace:mysprite.position];
p.x=(panLayer.position.x+(240-p.x));
p.y=(panLayer.position.y+(160-p.y));
[panLayer runAction:[CCMoveTo actionWithDuration:0.5 position:p]];

如何让精灵以不同的比例位于屏幕的中心? 谢谢

1 个答案:

答案 0 :(得分:0)

我不确定您现有的代码是做什么的,但您可能会发现属性mysprite.boundingBox很有用。它将为您提供一个CGRect精灵的宽度和高度以及左下角的位置,它将反映您应用于精灵的任何比例。