Cocos2d iphone 在屏幕中间将精灵定位为

Cocos2d iphone 在屏幕中间将精灵定位为,cocos2d-iphone,Cocos2d Iphone,在这个问题上我已经过了很多天了,我不太清楚convertToWorldSpace,convertToNodeSpace是做什么的 我有两层CCNode,一层我可以缩放,一层用于平移屏幕,因此我始终缩放显示的内容,使缩放中心位于屏幕中间: scaleLayer=[CCNode node]; scaleLayer.position= ccp( size.width /2 , size.height/2 ); [self addChild:scaleLayer z:-2000]; panLayer=

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

我有两层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]

我想有一个按钮,当按下时,移动图层,使屏幕中间的精灵。 我写过这篇文章,但只有当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]];
如何使精灵以不同的比例位于屏幕中心?
谢谢

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

在这段代码中,我找到精灵的像素位置,我有一个平移层假设x=+100,因此我必须转换精灵假设在位置x=+20,所以精灵的位置是:x=+120,然后我将其转换回-120像素+屏幕中心,240像素。如果我缩放,我必须找到缩放层中像素的位置,而不是世界。希望这个解释不要太模糊