Как я могу создать CCSprite, который масштабирует изображение, чтобы оно соответствовало входным границам, то есть если я хочу, чтобы CCSprite имел ширину = 70 и высоту = 50 и масштабировал изображение в файле до 70,50. Есть ли простой способ сделать это, кроме как вычислить коэффициент масштабирования от размера изображения по сравнению с желаемым конечным размером?
Как создать CCSprite для установки границ?
Ответы (2)
Вот работающая реализация категории, основанная на ответе @Martin.
@implementation CCSprite(Resize)
-(void)resizeTo:(CGSize) theSize
{
CGFloat newWidth = theSize.width;
CGFloat newHeight = theSize.height;
float startWidth = self.contentSize.width;
float startHeight = self.contentSize.height;
float newScaleX = newWidth/startWidth;
float newScaleY = newHeight/startHeight;
self.scaleX = newScaleX;
self.scaleY = newScaleY;
}
@end
person
Michael Behan
schedule
18.11.2010
Не уверен, что есть более простой способ, но я бы сделал что-то вроде
CGFloat myDesiredWidth=50;
CGFloat myDesiredHeight=70;
CGFloat startWidth=mySprite.size.width;
CGFloat startHeight=mySprite.size.height;
CGFloat scaleX=myDesiredWidth/startWidth;
CGFloat scaleY=myDesiredHeight/startHeight;
CGFloat finalScale=MIN(scaleX,scaleY);
mySprite.scale=finalScale;
Добавьте это в категорию на CCSprite, и вам больше никогда не придется об этом беспокоиться.
person
Martin
schedule
10.11.2010