Я провел много-много дней на эту проблему, я не очень понимаю, что делает 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 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]];
как сделать так, чтобы спрайт был в центре экрана с разными масштабами?
спасибо