как получить ширину и высоту CCSprite в cocos2d для iphone

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

{% static SampleModel.0.propertyValue %} 

Эти действия также работают:

{% with my_computed_var=SampleModel.0.propertyValue %}
    {% static my_computed_var %} 
{% endwith %}

{% static some_var|customFilter %}

Для получения дополнительной информации см. документацию об пользовательских тегах это также актуально для тегов по умолчанию Django.

29
задан Mxyk 9 December 2012 в 03:20
поделиться

5 ответов

Класс CCSprite имеет свойство ограничивающего прямоугольника, которое является CGRect:

  CCSprite *sprite = [CCSprite spriteWithFile: @"file.png"];
  int width = [sprite boundingBox].size.width;

Я добавил методы ширины и высоты в мой подкласс CCSprite.

-(CGFloat) width
{
    return [self boundingBox].size.width;
}

-(CGFloat) height
{
    return [self boundingBox].size.height;
}
53
ответ дан robterrell 9 December 2012 в 03:20
поделиться

необработанная ширина:
sprite.contentSize.width

необработанная высота:
sprite.contentSize.height

текущая ширина: sprite.contentSize.width * sprite.scaleX

текущая высота: sprite.contentSize.height * sprite.scaleY

38
ответ дан Roopesh Shenoy 9 December 2012 в 03:20
поделиться

IN cocos2d-x

sprite->boundingBox().size.width;

sprite->boundingBox().size.height;
0
ответ дан Singhak 9 December 2012 в 03:20
поделиться

В cocos2d-x v3.x boundingBox устарело в классе Node (то есть суперкласс Sprite ). Вместо этого используйте следующий код:

auto spriteWidth = sprite->getTextureRect().size.width;
auto spriteHeight = sprite->getTextureRect().size.height;

или

auto spriteWidth = sprite->getContentSize().width;
auto spriteHeight = sprite->getContentSize().height;
0
ответ дан GaloisPlusPlus 9 December 2012 в 03:20
поделиться

Ответ за 2018 год (Cocos2d-x v3.x:)

Другие ответы являются неполными и устаревшими.

Обратите внимание, что я использую JavaScript ниже вместе с деструктурирующим синтаксисом присваивания . Обязательно просмотрите документацию Cocos API для вашей языковой реализации.


getBoundingBox ()

Дает вам:

  • Масштабированный размер (размер после setScale() применяется к спрайту).
  • Координаты спрайта на экране. Обратите внимание, что по умолчанию anchorPoint для спрайтов (0,5, 0,5), в то время как эта координата представляет позицию (0, 0). Другими словами, если anchorPoint установлен по умолчанию, то getBoundingBox().x + getBoundingBox().width / 2 = getPosition().x (значение x, установленное в setPosition()).

Пример:

const boundingBox = sprite.getBoundingBox();
const { x, y, width, height } = boundingBox;

getContentSize ()

Дает вам:

  • Немасштабированный размер.

Пример:

const contentSize = sprite.getContentSize();
const { x, y } = contentSize;

getTextureRect ()

Дает вам:

  • Немасштабированный размер.
  • Координаты спрайта на текстуре, из которой он извлечен (то есть лист спрайта)

Пример:

const textureRect = sprite.getTextureRect();
const { x, y, width, height } = textureRect;
0
ответ дан jabacchetta 9 December 2012 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: