Sinon, un sprite c'est juste un tableau d'entiers, où chaque bit représente 1 pixel, s'il vaut 1 le pixel est allumé, sinon c'est que le pixel est éteint.
Il y a grosso-modo 3 types de sprites, cela dépend de la largeur du sprite (la hauteur étant potentiellement illimitée) : on utilise généralement des
unsigned char pour des sprites de largeur unsigned short pour des sprites de largeur unsigned long pour des sprites de largeur Concrètement, pour créer un sprite, il suffit de faire un tableau d'entiers où chaque entier représentera une ligne du sprite, par exemple :
unsigned char mon_sprite[] = {
0b00111100,
0b01000010,
0b10000001,
0b10000001,
0b10000001,
0b10000001,
0b01000010,
0b00111100
};
Cela crée le sprite, qui est un ovale ici
Ensuite pour l'afficher, il faut utiliser la fonction SpriteX, avec X valant 8,16 ou 32 (selon la largeur), et qui s'utilise de la façon suivante :
SpriteX(xpos, ypos, height, screen, attr);
xpos : Position x où placer le sprite
ypos : Position y où placer le sprite
height : Hauteur du sprite (nombre de lignes, ici
screen : Un pointeur pour indiquer sur quel écran afficher, utile si tu veux utiliser par exemple des buffers
ou des écrans virtuels pour ne pas afficher tout de suite à l'écran, pour l'instant tu peux mettre LCD_MEM ça suffit.
attr : Comment afficher le sprite (Normal, inversé, xor etc ...)
Le code complet sera donc :
#include
void _main(void)
{
unsigned char mon_sprite[] = {
0b00111100,
0b01000010,
0b10000001,
0b10000001,
0b10000001,
0b10000001,
0b01000010,
0b00111100
};
// Notre sprite fait moins de 8 pixels de largeur, on l'affiche à l'écran
Sprite8(50, 50, 8, LCD_MEM, A_NORMAL);
}
Sinon, il y a les bibliothèques (haha Lionel t'as fait la faute
) extgraph et genlib qui offrent des fonctions similaires, plus rapides, réfères-toi à la doc si tu veux en savoir plus.