C'est la question xD
Avec une instance de CCSprite dans cocos2d dans iphone, quelle méthode puis-je utiliser pour obtenir la largeur et la hauteur de l'image?
La classe CCSprite a une propriété de boîte englobante qui est un CGRect:
CCSprite *Sprite = [CCSprite spriteWithFile: @"file.png"];
int width = [Sprite boundingBox].size.width;
J'ai ajouté des méthodes width et height à ma sous-classe CCSprite.
-(CGFloat) width
{
return [self boundingBox].size.width;
}
-(CGFloat) height
{
return [self boundingBox].size.height;
}
largeur brute:Sprite.contentSize.width
hauteur brute:Sprite.contentSize.height
largeur actuelle: Sprite.contentSize.width * Sprite.scaleX
hauteur actuelle: Sprite.contentSize.height * Sprite.scaleY
Dans cocos2d-x v3.x, boundingBox
est déconseillé dans la classe Node (c’est-à-dire la super classe de Sprite ). Utilisez plutôt le code suivant:
auto spriteWidth = Sprite->getTextureRect().size.width;
auto spriteHeight = Sprite->getTextureRect().size.height;
ou
auto spriteWidth = Sprite->getContentSize().width;
auto spriteHeight = Sprite->getContentSize().height;
Les autres réponses sont incomplètes et obsolètes.
Notez que j'utilise JavaScript ci-dessous avec la syntaxe d'attribution de déstructuration . Veillez à consulter la documentation de l'API Cocos pour votre implémentation linguistique.
Vous donne le:
setScale()
est appliquée à l'image-objet).anchorPoint
par défaut pour les sprites est (0.5, 0.5), tandis que cette coordonnée représente la position (0, 0). En d'autres termes, si anchorPoint est défini par défaut, alors getBoundingBox().x
+ getBoundingBox().width
/2 = getPosition().x
(la valeur x définie dans setPosition()
).Exemple:
const boundingBox = Sprite.getBoundingBox();
const { x, y, width, height } = boundingBox;
Vous donne le:
Exemple:
const contentSize = Sprite.getContentSize();
const { x, y } = contentSize;
Vous donne le:
Exemple:
const textureRect = Sprite.getTextureRect();
const { x, y, width, height } = textureRect;
DANS cocos2d-x
Sprite->boundingBox().size.width;
Sprite->boundingBox().size.height;