come ottenere la larghezza e l'altezza di una CCSprite in cocos2d per iPhone
-
22-09-2019 - |
Domanda
Questa è la domanda xD
Dato un esempio di un CCSprite in cocos2d in iphone, quale metodo posso usare per ottenere la larghezza e l'altezza dell'immagine?
Soluzione
La classe CCSprite ha una proprietà rettangolo di selezione che è un CGRect:
CCSprite *sprite = [CCSprite spriteWithFile: @"file.png"];
int width = [sprite boundingBox].size.width;
Ho aggiunto una larghezza e un'altezza metodi per la mia CCSprite sottoclasse.
-(CGFloat) width
{
return [self boundingBox].size.width;
}
-(CGFloat) height
{
return [self boundingBox].size.height;
}
Altri suggerimenti
width grezzo:
sprite.contentSize.width
altezza grezzo:
sprite.contentSize.height
larghezza corrente:
sprite.contentSize.width * sprite.scaleX
altezza corrente:
sprite.contentSize.height * sprite.scaleY
IN cocos2d-x
sprite->boundingBox().size.width;
sprite->boundingBox().size.height;
In cocos2d-x v3.x, boundingBox
è deprecato in Nodo di classe (vale a dire la classe eccellente di Sprite ). Utilizzare il seguente codice invece:
auto spriteWidth = sprite->getTextureRect().size.width;
auto spriteHeight = sprite->getTextureRect().size.height;
o
auto spriteWidth = sprite->getContentSize().width;
auto spriteHeight = sprite->getContentSize().height;
Risposta per il 2018 (Cocos2d-x v3.x:)
Le altre risposte sono incompleti e out-of-date.
Si noti che sto usando JavaScript seguito con assegnazione destrutturazione sintassi . Assicurati di visualizzare il Cocos documentazione API per l'implementazione del linguaggio.
getBoundingBox ()
ti da:
- dimensioni scala (la dimensione dopo
setScale()
viene applicato alla sprite). - Coordinate del sprite sullo schermo. Si noti che il
anchorPoint
predefinito per sprite è (0.5, 0.5), mentre questa coordinata rappresenta la (0, 0). In altre parole, se l'AnchorPoint è impostato sul valore predefinito, quindigetBoundingBox().x
+getBoundingBox().width
/ 2 =getPosition().x
(il valore x impostato nelsetPosition()
).
Esempio:
const boundingBox = sprite.getBoundingBox();
const { x, y, width, height } = boundingBox;
getContentSize ()
ti da:
- dimensioni in scala.
Esempio:
const contentSize = sprite.getContentSize();
const { x, y } = contentSize;
getTextureRect ()
ti da:
- dimensioni in scala.
- Coordinate sprite sulla trama dal quale è estratto (cioè foglio sprite)
Esempio:
const textureRect = sprite.getTextureRect();
const { x, y, width, height } = textureRect;