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?

È stato utile?

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, quindi getBoundingBox().x + getBoundingBox().width / 2 = getPosition().x (il valore x impostato nel setPosition()).

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top