★ APPLICATIONS ★ PROGRAMMATION ★ DEFSPR, LISPR et CREGET: AMSTRAD PLEIN DE LUTINS ★ |
Defspr - Lispr - Creget (Amstrad Magazine) | Applications Programmation |
Généralement plus connus sous le nom de “sprites”, ces mystérieux objets ont la particularité de se superposer à un décor et d'y évoluer sans provoquer d'effacement. Les sprites, qui peuvent à juste titre être considérés comme des mini-mémoires écran autonomes, sont gérés d'ordinaire par un composant spécifique (coprocesseur vidéo) sur des machines telles que le Commodore 64 et les MSX. L'absence d'une telle bénédiction sur les modèles Amstrad, nécessite l'emploi d'un programme capable de régler à lui seul, tous les problèmes issus de l'intrusion d'un ou plusieurs lutins dans la mémoire écran ; à savoir principalement : la sauvegarde momentanée de la zone écran occupée par un sprite et sa restitution après déplacement. Voici donc pour l'agrément de vos programmes, une petite merveille de routine bien évidemment perfectible, destinée à l'élevage des lutins sur 464, 664 ou 6128. Leur création s'effectuera selon les trois étapes suivantes : 1 - Dessin du lutin et sauvegarde des données Le programme "DEFSPR" est un éditeur proposant une matrice de 30 colonnes sur 16 lignes, soit en mode 0 :4 caractères sur 2. Toutes les fonctions principales sont incluses : remplissage, suppression, insertion, copie, rotation de lignes ou de colonnes, décalages et miroirs horizontaux ou verticaux du sprite complet, renseignement sur les canaux ou les encres, verrouillage d'une encre pour une écriture en continu, sauvegarde ou chargement d'une matrice, new, recopie du tampon à l'écran et le fin du fin, une page d'aide. Le sprite une fois dessiné, l'option "Q" décide de l'allocation mémoire avant sauvegarde (les sprites étant traités différemment selon leur taille), à condition de suivre à la lettre les recommandations suivantes : — "Serrez" le lutin dans le coin haut/gauche de la grille à l'aide des commandes appropriées. 2 - Rappel des sprites créés, numérotation et rangement optimisé Le programme “LISPR” charge les sprites les uns à la suite des autres, leur alloue un numéro d'ordre et les range en RAM sous un format utilisable. Après lancement, le programme affiche le catalogue de la disquette où figure les fichiers précédemment créés. Le nombre de fichiers désirés est ensuite demandé ainsi que le nom de chacun. L'ordre d'appel constitue l'ordre de rangement des sprites (en fait, leur numéro). Il est possible d'utiliser douze sprites simultanément (ce nombre est limité en raison de l'espace mémoire). Une fois tous les lutins stockés, “LISPR” charge le programme binaire “PSPR“ à la suite des données et sauve le tout sous le nom de “sprHIMEN”. Pourquoi “sprHI-MEN" ? Pour cause d'amnésies éventuelles. Ainsi, le MEMORY à effectuer avant le chargement de la routine vous est astucieusement rappelé. 3 - Utilisation des sprites dans un programme basic Votre programme basic doit impérativement débuter par la ligne suivante : 10 MEMORY &XXXX : LOAD"SPRXXXX.BIN" L'utilisation d'un sprite s'effectue par la fonction : CALL &9800, X +numéro du sprite, abscisse, ordonnée, mode — Le numéro du sprite est l'identification du lutin (de 1 à 12). Si vous ne désirez pas voir des morceaux d'écran disparaître purement et simplement sous des sprites, utilisez le principe LIFO : le dernier lutin affiché doit être le premier enlevé lors des chevauchements. Voilà pour la partie utilisation. Sauvegarde des programmes — Sauvez le programme basic "DEFSPR". Vous aurez droit prochainement aux listings sources commentés de GET9800.BIN et de PSPR.BIN, ainsi qu'à quelques explications complémentaires. Patience...
|