CCSprite spriteWithFile авторазмер изображения - PullRequest
0 голосов
/ 26 февраля 2012

Я создаю планету со следующим кодом

CCSprite *planet = [CCSprite spriteWithFile:@"planet.png" rect:CGRectMake(0, 0, width, width)]; 

Сама планета намного больше, чем 48x48, поэтому в настоящее время изображение просто обрезается.Я хотел бы, чтобы изображение автоматически масштабировалось в контейнер.Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2012

при условии, что ширина контейнера равна 'width', число больше 0:

CCSprite *planet = [CCSprite spriteWithFile:@"planet.png"];
planet.scale=width/MAX(planet.contentSize.width,planet.contentSize.height);

Хотя, если вы пытаетесь получить планету размером с иконку (48 точек), я предлагаю вам создать текстуру для этоговместо того, чтобы уменьшать очень большое изображение ... ваш пробег может зависеть от качества рендеринга при уменьшении или слишком большом увеличении.

1 голос
/ 26 февраля 2012

Используйте метод scaleTo (или scaleBy) и масштабируйте его в соответствии с процентным отличием от оригинала.

...