– Des volontaires sont recherchés pour rajouter des effets de transition sympathiques.
Alors alors, ici le but du jeu, ça va être de vous proposer tout un tas de petites routines qui permettent de faire des effets de transition graphiques.
— Basé sur l'article publié dans Quasar CPC numéro 18, CPC plus, par SNN.
Alors même que tous les CPCistes veulent mettre de plus en plus de couleurs dans leurs réalisations, je vous propose, en rebelle que je suis, d'en mettre moins. Ou plutôt de convertir une bien belle palette de couleurs en infâmes niveaux de gris.
C'est en effet très joli, assez facile à réaliser et en plus, ça tombe bien, j'avais besoin d'un tel effet pour Stormlord+. Le principe est très simple. On prend la palette en cours, on fait deux/trois petits calculs, et on balance le tout à l'ASIC.
Bon courage.
— Fin.
Hein ? Quoi ? J'ai pas fini mon boulot ? Alors voyons comment faire les calculs. Comme tout le monde (sauf le petit blond à monocle1)) le sait, une palette en niveau de gris (d'où “Greyscale”) se compose de valeurs de rouge/vert/bleu identiques. Par exemple, un gris moyen (50%) sur CPC+ sera &7
, &7
et &7
. Soit on balance &77
au premier octet2) et &07
au deuxième3). Le traitement de la palette initiale sera vu dans une autre rubrique.
— Fin.
Je ne peux toujours pas partir ? Bon, continuons alors. Comme vous pouviez vous en douter, il ne suffit pas de faire la moyenne des valeurs rouges, vertes et bleues pour obtenir la valeur à poker. Non, c'eut été trop simple. Et c'est pour cela que les ignares comme le petit blond à monocle ne peuvent pas saisir la substantifique moelle de cet article délicieusement rédigé.
En fait, on se rend compte que si sur un écran on dessine trois carrés juxtaposés, l'un rempli de vert, un autre de rouge, le troisième de bleu, tous trois à la valeur &F
, les intensités lumineuses de ces carrés ne sont pas identiques. Elles sont même décroissantes. Ainsi, il va falloir pondérer les valeurs de nos trois couleurs fondamentales, ce que nous verrons page 46 du numéro 37 du merveilleux fanzine qu'est Quasar CPC.
À très bientôt.
— Fin.
C'est bon, lâchez ce flingue, je retourne devant mon CPC pour finir l'article ! Pfiou ! Je l'ai échappé belle !
Euh… où en étais-je ? Ah oui. Comme le vert est plus lumineux que le rouge, lui-même plus lumineux que le bleu, j'ai décidé de leur attribuer respectivement les coefficients 3, 2 et 1. Ainsi, je prends dans les registres de l'ASIC le premier octet de l'encre qui m'intéresse. Mettons &6400
4). Je sauve soigneusement l'octet et j'en prends les 4 derniers bits (4 à 7). Je RRAte
le tout quatre fois et je double tout ça avec un ADD A,A
bien senti. Résultat : la valeur de rouge est doublée, je suis heureux. J'y ajoute les quatre premiers bits issus de &6400
(la composante bleue) et je sauve. Pour le vert, même principe mais je multiplie par trois (voir le programme d'exemple ci-après) et finalement j'ajoute les jaunes d'œufs à la farine et au sucre en poudre, lentement pour qu'il n'y ait pas de grumeaux. Oups, pardon, je m'égare.
Tiens, ça me fait penser que je n'ai pas rempli mon quota de vacheries anti-Tony dans cet article. Alors : “Tony, va cliquer ailleurs, c'est des trucs pour grandes personnes ici !”.
Finalement, la somme n'est pas à diviser par 3, mais bien par 6. Or comme ce n'est pas très facile de trouver un moyen de diviser par 6, je vous propose de revenir en 6ème. Flash back (imaginez la maîtresse avec son morceau de craie, sa règle jaune de un mètre et son gros compas que vous rêviez de prendre pour lui planter dans l'œil) “Diviser par 6 c'est soustraire 6, x fois où x est le résultat.” Fin du flash back. Opérons donc.
Magie, un résultat compris entre 0
et &F
. On trafique un peu pour que les quatre premiers bits soient recopiés sur les quatre derniers, on balance la purée en &6400
et comme &6401
tire la tronche, on fait de même pour lui.
Résultat : ça marche et moi je vous souhaite une excellente soirée sur notre chaîne. Tout de suite, la météo.
C'est bon là, je peux partir ? Merci, vous êtes bien urbains.
— Fin.
Télécharger le listing au format Maxam 1.5
; Programme de conversion ; de palette couleurs en ; niveaux de gris ; ; Par SNN pour Quasar CPC 18 ; Grey xor a ld (compt),a ld hl,&6400 ld (base),hl Boucle ld hl,0 ld de,(base) inc de ; Traitement du vert ld a,(de) and %1111 ld c,a ld b,0 add hl,bc add hl,bc add hl,bc dec de ; Traitement du rouge ld a,(de) and %11110000 rra rra rra rra ld c,a add hl,bc add hl,bc ; Traitement du bleu ld a,(de) and %1111 ld c,a add hl,bc ; Division par 6 xor a ld bc,6 Divise sbc hl,bc inc a jr nc,divise ld (resultat),a or a jr z,annul dec a ld (resultat),a ; Recopiage bits 0-3 dans ; bits 4-7 puis envoi a ; l'Asic. Annul ld b,a and %1111 rla rla rla rla add a,b ld hl,(base) ld (hl),a inc hl ld (hl),a inc hl ld (base),hl ; On passe à l'encre ; suivante... ld a,(compt) inc a ld (compt),a cp 16 jp nz,boucle ret ; Compteurs - Stockage Resultat nop Compt nop Base ds 2