★ CODING ★ CHRONIQUE 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 tableau ou d'un rang vers la fin du tableau. 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ération. 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 rapide 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 vouIez 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) contenant 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 correspondre 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épondrai 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 faisait 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 correspondre à 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 suffit 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
|