Index des articles > Programmation > Tutorial TIGCC - Chapitre 8 - Sprites

Tutorial TIGCC - Chapitre 8 - Sprites

Article posté par limmt

Chapitre 8 - Sprites

A - Principe

Il serait très compliqué et pas pratique de dessiner des graphismes évolués en utilisatn uniquement les fonctions graphiques de base.
Les sprites permettent d'afficher des images directement.
Ils peuvent être en 1 (noir et blanc), 2 (4 niveaux de gris) ou même 3 (7 niveaux de gris) plans.
Un sprite est une suite d'octets qui corespond à une image.

B - Sprite C

Les sprites C se composent d'une variable par plan.
Pour chaque plan, on a un liste qui permet d'avoir l'image. Chaque item de la liste est une ligne et le nombre d'item une colonne, la plupart du temps, pour les sprites de largeur, 8, 16 ou 32, pour les autres c'est un peu différent car les données ne tiennent pas forcément sur un long.
Il est très facile de générer des sprites sans avoir à les taper, ce qui serait assez compliqué, grace à des logiciels convertissant des images bitmap en sprites.
Ti Paint Plus est le plus courant et est fourni avec GraphX, bien qu'il soit assez bugué, surtout pour les grosses images.
Pour un sprite en 4 niveaux de gris, on a généralement deux variables, mais il peux arriver qu'on doive en utiliser trois pour créer un masque.
Un masque permet d'utiliser comme une sorte de transparence. La ou le masque sera à 0, le sprite sera affiché en écrasant ce qu'il y a en dessous, la ou le masque sera à 1, le sprite sera affiché en OR avec ce qu'il y a en dessous, cela permet d'afficher par exemple un personnage en effacant précisément autour de ses contours et en laissant le fond autour de lui.

C - Affichage des sprites

Il est possible d'utiliser les fonctions de graph.h comme Sprite8, Spirte16, Sprite32 pour afficher de sprites mais je n'expliquerai pas leur fonctionnement, pour plus d'infos, lisez la doc de TIGCC.
J'expliquerai l'affichage de sprites avec extgraph v2.xx qui est très rapide
Il existe différentes fonctions de Sprites pour extgraph, il y a des fonctions en noir et blanc commencant par Sprite_ ou en niveaux de gris commencant par GraySprite_ certaines fonctions peuvent être clippées, pour celà on rajoute le préfixe Clip. Les fonctions peuvent afficher des sprites de différentes largeurs: 8, 16, 32 ou tout autre multiple de 8, on rajoute pour cela 08, 16, 32 ou X8. Pour un souci de rapidité, chaque mode d'affichage correspond à une fonction. On rajoute tout à la fin: _Or, _XOR, _AND ou _MASK. Toutes ces fonctions perennent en argument: short x, short y, les coordonnées, puis short h, la hauteur du sprite, puis les pointeurs vers le sprite (le nombre nécessaire en rajouter un si il a un masquage (en cas de niveaux de gris, chaque plan prend un masque mais il est possible d'attribuer deux fois le meme masque)) puis si la fonction est X8, le nombre d'octets de largeur (largeur du sprite/8) puis le(s) pointeur(s) vers le(s) buffer(s).
Pour plus d'informations, voir la doc d'extgraph.


Limmt Ribeman © 2004

>> Vos commentaires [0]

Pas de commentaires

Poster un commentaire


Seuls les membres peuvent poster des commentaires