| Projeto IDJ - Towers Of Madness
    TowerDefenseLovecraftnianoZombicida | 
Classe que modela uma sprite. Mais...
#include <Sprite.h>
| Métodos Públicos | |
| Sprite (void) | |
| Cria um sprite não associado a uma imagem.  Mais... | |
| Sprite (std::string file, bool highlighted=false, float frameTime=1, int frameCount=1) | |
| Cria um sprite válida.  Mais... | |
| ~Sprite () | |
| Destrutor.  Mais... | |
| void | Open (std::string file) | 
| Carrega uma imagem.  Mais... | |
| void | SetClip (int x, int y, int w, int h) | 
| Seleciona o recorte da imagem que deve ser renderizado.  Mais... | |
| void | Render (Rect world, float angle=0, bool isCoordOnWorld=true) const | 
| Renderiza a imagem.  Mais... | |
| int | GetWidth (void) const | 
| Informa a largura do sprite.  Mais... | |
| int | GetHeight (void) const | 
| Informa a altura do sprite.  Mais... | |
| std::shared_ptr< SDL_Texture > | GetTexture (void) const | 
| Obtém a textura armazenada na Sprite.  Mais... | |
| bool | IsOpen (void) const | 
| Verifica se tem uma imagem carregada.  Mais... | |
| void | Update (float dt) | 
| Atualiza o estado da sprite.  Mais... | |
| void | SetFrame (int frame) | 
| Força a animação a ficar num frame específico.  Mais... | |
| void | SetFrameCount (int frameCount) | 
| Altera a quantidade de frames do sprite animado.  Mais... | |
| void | SetFrameTime (float frameTime) | 
| Altera o ritmo dos sprites animados.  Mais... | |
| void | SetScaleX (float scale) | 
| Força um valor para a escala horizontal do sprite.  Mais... | |
| void | SetScaleY (float scale) | 
| Força um valor para a escala vertical do sprite.  Mais... | |
| void | SetScale (float scale) | 
| Força um valor para a escala horizontal e vertical da sprite.  Mais... | |
| void | ScaleX (float scale) | 
| Altera a escala horizontal do sprite.  Mais... | |
| void | ScaleY (float scale) | 
| Altera a escala vertical do sprite.  Mais... | |
| void | Scale (float scale) | 
| Altera a escala vertical e horizontal do sprite.  Mais... | |
| Atributos Públicos | |
| Color | colorMultiplier | 
| SDL_BlendMode | blendMode | 
| Atributos Privados | |
| std::shared_ptr< SDL_Texture > | texture | 
| int | width | 
| int | height | 
| int | frameCount | 
| int | currentFrame | 
| float | timeElapsed | 
| float | frameTime | 
| SDL_Rect | clipRect | 
| float | scaleX | 
| float | scaleY | 
| bool | highlightable | 
Classe que modela uma sprite.
Sprite é uma imagem carregada na memória. Essa classe também traz uma séria de funcionalidades além disso, como escala, animações de sprite sheets e exibição na tela da imagem.
| Sprite::Sprite | ( | void | ) | 
Cria um sprite não associado a uma imagem.
Uma instância de sprite é criada. A escala inicial(X e Y) é 1.0, supondo-se que não é um sprite sheet(frameCount=1, frameTime=0), o campo texture é inicializado com nullptr.
| Sprite::Sprite | ( | std::string | file, | 
| bool | highlighted = false, | ||
| float | frameTime = 1, | ||
| int | frameCount = 1 | ||
| ) | 
Cria um sprite válida.
| file | Arquivo que contém a imagem. | 
| highlighted | Checa se a sprite deve alterar a cor (highlight) quando o mouse passar em cima. | 
| frameTime | Tempo em segundos que cada imagem de um sprite sheet deve durar. | 
| frameCount | Quantas imagens tem no sprite sheet. Caso o valor seja 1 significa que é um sprite não animado. | 
Uma instância de sprite é criada. A escala inicial(X e Y) é 1.0. o método Open é chamado para carregar a imagem.
| Sprite::~Sprite | ( | ) | 
Destrutor.
Como a desalocação a imagem é feita automaticamente pelo shared_ptr/Resources e todos os outros atritutos são alocados estaticamente, nada precisa ser feito.
| int Sprite::GetHeight | ( | void | ) | const | 
Informa a altura do sprite.
Retorna a largura do sprite. De qualquer forma essa altura leva em consideração a escala do sprite.
| std::shared_ptr< SDL_Texture > Sprite::GetTexture | ( | void | ) | const | 
Obtém a textura armazenada na Sprite.
Com grandes poderes vêm grandes responsabilidades.
| int Sprite::GetWidth | ( | void | ) | const | 
Informa a largura do sprite.
Retorna a largura do sprite, no caso do sprite sheet é retornado a largura de um único sprite do sprite sheet. De qualquer forma essa largura leva em consideração a escala do sprite.
| bool Sprite::IsOpen | ( | void | ) | const | 
Verifica se tem uma imagem carregada.
Isso é feito verificando se o atributo texture é diferente de nullptr.
| void Sprite::Open | ( | std::string | file | ) | 
Carrega uma imagem.
| file | Arquivo que contém a imagem. | 
Faz uso da classe Resources para obter o ponteiro para a imagem em memória, verifica o tamanho da imagem carregada para atribuir a width e height e chama o método SetClip da imagem, levando em consideração, caso seja uma sprite animada, quantas sprites fazem parte da animação.
| void Sprite::Render | ( | Rect | world, | 
| float | angle = 0, | ||
| bool | isCoordOnWorld = true | ||
| ) | const | 
Renderiza a imagem.
| world | Região a partir do qual a imagem deve ser renderizada. | 
| angle | Ângulo de rotação da imagem. | 
| isCoordOnWorld | Verdadeiro se a região a ser renderizada deve ser convertida do mundo para tela. Falso se as coordenadas já estão convertidas (UI e BGs, por exemplo). | 
Renderiza o corte da imagem existente em clipRect nas posições (x, y) da informada nos argumentos. A imagem será rotacionada de acordo com o argumento angle. Os valores do retângulo serão convertidos do mundo para tela se isCoordOnWorld for verdadeiro. É realizado uma otimização para que, se a Sprite não possuir nenhuma coordenada na tela, ela não será renderizada.
| void Sprite::Scale | ( | float | scale | ) | 
Altera a escala vertical e horizontal do sprite.
| scale | Valor no qual a escala vertical e horizontal devem ser alteradas. | 
Atribui a scaleY produto de scaleX pelo argumento e atribui a scaleX produto de scaleX pelo argumento.
| void Sprite::ScaleX | ( | float | scale | ) | 
Altera a escala horizontal do sprite.
| scale | Valor no qual a escala horizontal deve ser alterada. | 
Atribui a scaleX produto de scaleX pelo argumento.
| void Sprite::ScaleY | ( | float | scale | ) | 
Altera a escala vertical do sprite.
| scale | Valor no qual a escala vertical deve ser alterada. | 
Atribui a scaleY produto de scaleY pelo argumento.
| void Sprite::SetClip | ( | int | x, | 
| int | y, | ||
| int | w, | ||
| int | h | ||
| ) | 
Seleciona o recorte da imagem que deve ser renderizado.
| x | Ponto x inicial da imagem deve ser exibida. | 
| y | Ponto y inicial da imagem deve ser exibida. | 
| w | Largura em pixels da imagem. | 
| h | Altura em pixels da imagem. | 
Atribui a clipRect os valores informados.
| void Sprite::SetFrame | ( | int | frame | ) | 
Força a animação a ficar num frame específico.
| frame | Frame que deve ser colocado. | 
Atribui o frame informado ao currentFrame, usando a operação módulo para garantir que esse frame é válido. O campo x do clipRect é alterado para refletir essa mudança.
| void Sprite::SetFrameCount | ( | int | frameCount | ) | 
Altera a quantidade de frames do sprite animado.
| frameCount | Novo valor para a quantidade de frames. | 
O atribuito frameCount recebe o valor informado o width é recalculado usando o novo valor.
| void Sprite::SetFrameTime | ( | float | frameTime | ) | 
Altera o ritmo dos sprites animados.
| frameTime | Intervalo no qual se deveja que os sprites sejam trocados | 
Atribui o argumento a frameTime.
| void Sprite::SetScale | ( | float | scale | ) | 
Força um valor para a escala horizontal e vertical da sprite.
| scale | Valor desejado para a escala. | 
Atribui o argumento a scaleY e scaleX.
| void Sprite::SetScaleX | ( | float | scale | ) | 
Força um valor para a escala horizontal do sprite.
| scale | Valor desejado para a escala. | 
Atribui o argumento a scaleX.
| void Sprite::SetScaleY | ( | float | scale | ) | 
Força um valor para a escala vertical do sprite.
| scale | Valor desejado para a escala. | 
Atribui o argumento a scaleY.
| void Sprite::Update | ( | float | dt | ) | 
Atualiza o estado da sprite.
| dt | Intervalo de tempo desde a última chamada a Update. | 
Verifica se o sprite carregado deve ser atualizado se for um sprite sheet. As seguintes operações são feitas:
| SDL_BlendMode Sprite::blendMode | 
O modo de mistura da sprite com as inferiores.
| 
 | private | 
Recorte do sprite que será exibido na tela.
| Color Sprite::colorMultiplier | 
A cor a ser usada para multiplicar a sprite.
| 
 | private | 
Indica qual "subsprite" de uma sprite animada está em exbição no momento.
| 
 | private | 
Quantidade de "subsprites" de um sprite animado.
| 
 | private | 
Tempo em segundos que cada "subsprite" deve aparecer na tela.
| 
 | private | 
Altura da textura em pixels.
| 
 | private | 
| 
 | private | 
Escala horizontal do sprite.
| 
 | private | 
Escala vertical do sprite.
| 
 | private | 
Ponteiro para a textura manejada pelo sprite.
| 
 | private | 
Quantidade de tempo em segundos que o "subsprite" atual está sendo renderizados.
| 
 | private | 
Largura da textura em pixels.
 1.8.8
 1.8.8