La construction d'une image consiste à
appliquer, au fur et à mesure, les couches successives qui vont
constituer cette image.
Dans la plupart des jeux, l'image est constituée d'un décor
statique ou défilant (scrolling),
d'un deuxième décor le cas échéant qui défile à la même
vitesse ou non mais qui est transparent, ce qui donne l'effet de
profondeur, et en dernier lieu de l'affichage des sprites qui
compose le joueur, les ennemis, les décors....
Dans l'exemple qui suit (Totalwar, qui sera
bientôt en téléchargement), le jeu est constitué d'un décor
de fond défilant, d'un décor parallax défilant deux fois moins
vite, puis des sprites.
En tout premier lieu, je transfère le décor de fond dans un
buffer final.
Suit après le transfert du décor parallax sur cet écran final
en mode transparent.
Je dessine tous les sprites sur cet écran final.
J'attends le retour de balayage vertical du moniteur (ref: La synchronisation)
puis je transfère cet écran sur la carte VGA.
Je teste les collisions, la vie du joueur ... puis je reconstruis
l'image et ainsi de suite.
PRINCIPE DE BASE:
PHASE DU PROGRAMME |
Afficher le décor de fond |
Afficher les sprites |
Traiter les actions (joueur, sprites....) |
Attendre la synchro vidéo |
Transférer l'écran sur la carte VGA |
Retour au début |
EXEMPLE CONCRET:
Placer le décor de fond (sol gris)... (ecran0 ->ecran1)
...Placer le décor niveau 1 (parallax sol bleu)...(ecranp)
...en le transférant en mode transparent...(ecranp->ecran1)
...puis de placer les sprites et score. Cette fois-ci, l'image est construite.
Il suffit de transférer cette image située en mémoire sur la carte VGA (ecran1->VGA).
Les indications (ecran1, ecran0, ecranp) vous serviront de repère pour la suite.