CODINGCHRONIQUE A100% DES LOGON SYSTEM ★ LOGON SYSTEM ACPC N°41 - RASTER SUITE... ★

Logon System ACPC n°41 - Raster suite...Coding Chronique A100% Des Logon System

En épluchant le sympathique ( enfin dans la plupart des cas ) courrier que vous nous faites parvenir, nous en avons conclu que certains d'entre vous souhaiteraient encore plus de choses sur les Rasters (déplacement sinusoïdale, devant et derrière un logo, split raster equaliser, etc.).

Ayant fait le premier article sur les rasters , je me doit de continuer.

Je suppose que vous savez déjà faire un raster tout bête au milieu de l'écran, jusque-là OK, pas de problèmes, mais pour le faire bouger: mystère ... Il faut d'abord comprendre le principe des tableaux, un tableau est une zone mémoire dans laquelle on stocke des éléments de même type (type: soit un octet, une adresse, une chaîne de caractères, etc.), on peut accéder à n'importe quel élément du tableau en utilisant un indice qui indique où est rangé l'élément souhaité.

ELEVE FRED ALLEZ AU TABLEAU !

Dans notre cas, le tableau est la zone mémoire dans laquelle se trouvent les couleurs du raster, le nombre d'éléments correspond au nombre de lignes que fait le raster, donc un raster de 10 lignes n'est ni plus ni moins qu'un tableau de couleurs constitué de 10 éléments.

RASTER : BOUGE DE LA !

Pour faire bouger notre raster, il faut donc déplacer les éléments du tableau qu'est notre raster. Une des premières choses simples à faire consiste à faire soit monter ou descendre un raster, ce qui, en terme de programmation, revient à déplacer les éléments d'un tableau d'un rang vers le début du ta­bleau ou d'un rang vers la fin du ta­bleau. Pour faire défiler le tableau vers le haut, il faut remplacer chaque élément d'indice « i » (j'ai pris « i » c'est arbitraire) par son élément suivant d'indice « i + 1 » on fait ainsi du début jusqu'à la fin sans avoir oublié de conserver le premier élément qui va se retrouver le dernier à la fin de l'opéra­tion. En consultant le petit programme servant d'exemple à l'article, vous constaterez que pour réaliser ce petit prodige, les instructions LDIR et LDDR nous seront utiles (pour l'instant nous parlons de compréhension non pas d'optimisation, donc je ne veux pas de remarque du genre « Hé, y'a plus rapi­de que LDIR », n'est-ce pas Longshot?

VOUS BOUGIEZ, EH BIEN DANSEZ MAINTENANT

Toujours plus fort ( mais non Fred, je n'ai pas dit de taper plus fort sur PICT ) comment faire si on désire faire suivre une trajectoire précise à notre raster ( par exemple, effet de rebond ou bien décélération et changement de sens, tout cela de façon propre ). Si vous vou­Iez mon avis, rien ne vaut un bon cosinus pour réaliser cette petite merveille ( qui a dit « Ah bon! » ? ).

Le principe de fonctionnement est le suivant, nous disposons de trois tableaux, le premier (tableau 1) conte­nant notre beau raster (on suppose qu'il est rouge et qu'il fait 8 lignes de haut) qui va se déplacer; le second ( tableau 2)  contenant le raster qui sera réellement visualisé (au départ il doit être rempli de couleur noire, on suppose qu'il fait 50 lignes de haut), et enfin le plus important, un tableau (tableau 3) contenant des valeurs qui vont cor­respondre aux numéros de lignes que va emprunter le raster rouge lorsqu'il va se déplacer à l'écran ( il va en réalité se déplacer dans le tableau 2 ). Maintenant, voyons ce que nous allons faire de ces trois tableaux. Tout d'abord, il faut remplir le tableau 2 avec la couleur du fond, ensuite il faut prendre une valeur, que nous noterons « x», dans le tableau 3 et aller copier le tableau 1 (le raster rouge) dans le tableau 2 ( le raster écran ) à partir de l'indice de « x » (qui correspond à la ligne d'affichage ). Oui je sais ce n'est pas évident au début, donc j'en profite pour de nouveau vous dire de vous inspirer du programme d'exemple dans lequel tout les cas sont traités. Vous allez me dire quel rapport avec les cosinus 7 Eh bien, je vous répon­drai qu'il faut bien remplir le tableau 3 de notre exemple ( le tableau contenant le mouvement du raster ) avec quelque chose. Avant de faire nos calculs, il faut déterminer la taille de la zone dans laquelle notre raster va se déplacer; nous avions dit que le raster écran fai­sait 50 lignes, il ne faut pas oublier de retirer de ces 50 lignes la taille du raster rouge qui est de lignes, et il nous reste donc 42 lignes qui vont corres­pondre à notre zone de déplacement. L'autre chose à savoir est que les valeurs extrêmes prises par la fonction cosinus (petit rappel mathématique) sont 1 et -1. Avec tout cela, il vous suf­fit de consulter le programme Basic qui génère le tableau de déplacement du raster, ce programme se chargera de poker le tableau en mémoire, ensuite de charger le programme binaire que vous aurez pris soin de sauvegarder au préalable sous le nom de RASTER.BIN, et de lancer le programme binaire.

Me voilà arrivé à la fin de cet article, mais dites-vous bien que le sujet des RASTER n'est pas clos et que l'on risque de vous en reparler plus tard.

Sur ces paroles hautement philosophiques (si! si !) je vous laisse méditer. A bientôt!

Pict / Logon System, ACPC n°48 Juillet 93, p 20-21-22-23

★ ANNÉE: ???
★ AUTEUR: DIGIT

Page précédente : Logon System ACPC n°40 - Gerez vos Banks ... de mémoire

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 094 millisecondes et consultée 1022 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.