LE SCROLLING
LES TYPES DE SCROLLING
PROGRAMMATION D'UN SCROLLING


LE SCROLLING:

Le scrolling désigne tout défilement d'écran. Le concept est venu avec les premiers jeux d'arcade de fêtes foraines ou de bar. Avant son apparition, les jeux étaient des jeux à écrans fixes: Pong, Pac-man, Galaga, Galaxian.
L'avantage du scrolling est d'agrandir le terrain de jeu du joueur. Le jeu comme Scramble en est un exemple.


LES TYPES DE SCROLLING

Les différents types de scrolling:

Note: Les scrolling parallax comme dans Totalwar sont les mêmes que ceux cités précédemment mais sont transparents. Les scrolling diagonaux sont quant à eux, des scrolling verticaux et horizontaux.


PROGRAMMATION D'UN SCROLLING

La programmation d'un scrolling diffère suivant la taille du terrain de jeux et avant, avec la taille de la mémoire.

Utiliser un grand écran virtuel:

Le graphique suivant en montre le principe:

L'écran virtuel fait 4 fois l'écran réel. Le décor de fond peut être crée par 4 images PCX que l'on chargera puis copiera aux offsets 0, 128000 (200*640), 320 et 128320 (200*640+320). Ces offsets correspondent aux coins supérieure gauche, gauche moitié bas, haut droit, droite moitié bas. Les fonctions de copies d'écran fournies (réf:Transfert d'écran) ne peuvent effectuées ce travail. La source est basée sur 320 pts mais la destination sur 640 !. Il suffit tout simplement de copier les 200 lignes en sautant 320 octets ou points après chacune.

Dans cet exemple, il suffit de déplacer le pt P pour visualiser, après copie dans la carte VGA, l'endroit visible.

Cette méthode est très rapide mais elle limite la taille du terrain. Si j'avais utilisé cette technique dans Totalwar il m'aurait fallu prés de 3Mo pour les deux scrolling alors que j'utilise que 128Ko !!!. C'est vrai que le PC a un minimum de 32Mo maintenant, mais je ne pense pas que ce soit une raison pour en gaspiller autant. Il ne faut pas oublier aussi que la gestion des sprites doit être effectuée sur 640 points et non sur 320 points. L'Amiga utilisait ce principe pour ses scrolling fluides.
Cette méthode est donc à réserver à des jeux ayant un terrain limité (Skweek...).

Déplacer le contenu de la page écran:

Cette technique, bien que plus coûteuse en temps machine est et a été la plus utilisée sur les ordinateurs comme sur certaines bornes d'arcade. Il suffit de déplacer le contenu de la mémoire dans un sens ou dans l'autre. J'ai utilisé cette méthode sur l'Amstrad CPC ainsi que sur l'Atari ST (aussi pour Totalwar !)
Sur le graphique, un ligne blanche apparaît sur le deuxième écran rouge. En fait, le contenu de la première ligne a été placé sur la ligne deux et ainsi de suite. Cette opération se fait en mémoire dans un buffer et non directement dans la carte VGA.
Pour un scrolling vers le bas, il faut la déplacer en partant de la ligne 198 et en allant vers le haut. C'est le contraire pour le scrolling vers le haut.

Pour le scrolling horizontal, il faut procéder ligne par ligne. Il faut, dans le cas d'un scrolling droite/gauche partir du point 1 et le mettre en 0 jusqu'au point 319 en 318. C'est le contraire dans l'autre sens. C'est plus lent car on ne peut le faire en une fois par une instruction rep; movsl, mais comme les processeurs sont de plus en plus puissants, ce défaut devient caduque.

En ce qui concerne l'apparition d'un décor sur la nouvelle ligne, cette fonction est traitée sur la page concernant Le scrolling avec insertion de décor.