118Fermer120
FadestLe 26/02/2008 à 18:05
Note : je pense qu'on peut dépasser le 512x512, mais il y a peut-être des soucis de performance, je ne me rappelle plus.

En fait, le Lynx gère un système de clipping, c'est à dire qu'elle ne s'occupe pas des sprites ne devant pas être affichés.
L'intérêt ?
Par exemple, prenons un jeu de plate forme type Mario qui ferait 3 écrans de large et 1 de haut, donc du 480x102.
On reconstitue l'ensemble de cette image de 480x102 (le fond bleu, quelques nuages, les blocs de décors...), si possible avec des sprites chainés.
Tous ces objets ont une position fixe, avec x compris entre 0 et 480 et y compris entre 0 et 102.
Une fois défini, plus besoin de retourcher à tous ça.
Idem pour les enenmis, ils se déplacent dans ce monde suivant leur algotithme.

En fonction des déplacements du joueur, on déplace le sprite du joueur et parallèlement cet écran virtuel pour gérer le scrolling, ou la téléportation éventuelle...
Ca réduit considérablement les calculs entre chaque affichage.

O navait fait l'expérience il y a quelques années avec Fagemul je crois. Il avait fait une petite routine gérant un niveau comme décrit plus haut sans utiliser les astuces de la Lynx (sprites chainés et écran virtuel). Donc, à chaque affichage, il parcourait son tableau décrivant la map, calculait les coordonnées et affichait éventuellement le sprite individuellement.
Ca ramait. On avait ensuite modifier son programme pour déclarer une fois pour toute les sprites à l'aide d'une liste de sprite chainés, puis déplacer la fenetre virtuelle. C'était devenu très fluide. Il faut dire que du coup, la boucle principale du programme ne faisait rien de plus que celle donnée en exemple à Rygar plus haut (test joystick -> modification position personnage + déplacement éventuel de l'écran virtuel).


Ce serait le même principe pour une map dans un RPG avec des tiles de 16x16, il y en aurait 70 à l'écran en permanence. Sans le chainage, ça ramerait trop.
Et si on veut que notre map soit plus grande que l'écran, sans l'écran virtuel, on ferait une tonne de calculs à chaque déplacement, autant de perdu pour ce qui est vraiment important au jeu.

Cet écran virtuel est également utilisé dans Space Dance, en fait, les flèches ne montent pas, elels restent fixes, et c'est l'écran virtuel qui descend. Encore pour limiter les calculs entre 2 affichages.