Curso completo de DarkGdk
Gameprog - Escola de programação de jogos digitais
Contato: gameprog.br@gmail.com
Fase 8.1
08.1 Introdução a sprites
1 Aspectos gerais
Sprite é uma célula de animação 2D. Geralmente uma animação consiste de
uma série de sprites mostradas numa sequência organizada.

Você pode utilizar sprites gravadas em imagens individuais para compor sua
animação, entretanto para melhor performance você deve usar uma folha
de sprites, que é uma imagem contendo os múltiplos quadros da animação.
Veja abaixo um exemplo de folha de sprites:
Naturalmente depois com a folha de sprites você utiliza algumas funções para
recortar e mostrar os quadros da animação.
A DarkGdk, como de costume, oferece dois blocos básicos de funções para
a manipulação dos recursos. Temos o primeiro bloco de funções para
manipular as sprites (criar, esticar, espelhar, etc.) e o segundo bloco
que retorna o status das diversas propriedades (altura, largura, etc)
geralmente alteradas com o primeiro bloco.
Sistema de tiles
O tile ou azulejo é uma célula quadrada de uma área quadriculada maior chamada
grid em inglês. O sistema de tiles para composição de jogos predominou nos
consoles de videogame do passado (nitendo, mastersystem, supernes, megadrive etc.)
O sistema de tiles era uma necessidade das épocas anteriores devido a limitação
de memória dos videogames da época. Através da combinação de poucos tiles
conseguia-se fazer um grande mapa sem gastar muita memória.
Ainda hoje é utilizado em jogos 2d e 3d porque é uma maneira confortável de
raciocinar sobre a divisão e organização do espaço para desenhar, para
disposição de objetos e como ponto de apoio para aplicação de lógicas de
videogame.
2.Resumo das funções
Veja abaixo o resumo das funções que serão estudadas:
Primeiro bloco
---------------------------------------------------------------------------
dbSprite() - Define uma sprite atrelando uma imagem e posição inicial.
dbSetSprite() - Configura propriedades da sprite, transparência e flag de
preservação do background.
dbDeleteSprite() - Deleta a sprite
dbShowSprite() dbHideSprite() dbHideAllSprites() dbShowAllSprites()
Estas funções escondem ou re-exibem sprites.
dbMoveSprite() dbOffsetSprite()
Estas funções movem ou deslocam a sprite pela tela.
dbSizeSprite() dbScaleSprite() dbStretchSprite()
Estas funções alteram o tamanho ou a escala da sprite
dbRotateSprite() - Roda a sprite
dbFlipSprite() dbMirrorSprite()
Inverte horizontal ou verticalmente a sprite
dbPasteSprite() - Resposiciona a sprite na tela
dbCreateAnimatedSprite() dbPlaySprite() dbSetSpriteFrame()
Estas funções produzem sprites animadas.
dbSetSpritePriority() - Configura a prioridade de exibição da sprite
dbSetSpriteImage() - Reajusta a imagem da sprite
dbSetSpriteAlpha() - Ajusta a transparência da sprite
dbSetSpriteDiffuse() - Ajusta a cor difusa da sprite
dbSetSpriteTextureCoord() - Reajusta a textura da sprite
Segundo bloco
---------------------------------------------------------------------------
dbSpriteExist() - Verifica se a sprite existe
dbSpriteX() dbSpriteY()
Retornam a posição da sprite na tela
dbSpriteOffsetX() dbSpriteOffsetY()
Retornam o deslocamento da sprite nos eixos xy.
dbSpriteScaleX() dbSpriteScaleY()
Retornam a escala da sprite nos eixos xy.
dbSpriteWidth() dbSpriteHeight()
Retorna a largura e altura da sprite.
dbSpriteImage() - Retorna o número da imagem da sprite
dbSpriteMirrored() dbSpriteFlipped()
Verificam a inversão da sprite.
dbSpriteHit() dbSpriteCollision()
Verificam a colisão da sprite com outras
dbSpriteAngle() - Retorna o ângulo da sprite
dbSpriteFrame() - Retorna o número do frame corrente da sprite
dbSpriteAlpha() - Retorna o grau de transparência da sprite
dbSpriteRed() dbSpriteGreen() dbSpriteBlue()
Retornam o valor RGB da cor difusa da sprite.
dbSpriteVisible() - Retorna visibilidade da sprite.