Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : Assembleur - Créer des barres verticales d'un pixel de large avec le Copper
(Article écrit par Franck Charlet et extrait d'Amiga News Tech - mars 1991)
|
|
Créer des barres verticales d'un pixel de précision avec le Copper... Impossible ! Me direz-vous, et vous aurez raison.
Pourtant de nombreuses démos possèdent cet effet (comme la Mégademo de Dragons).
La solution est extrêmement simple et ne présente avec le Copper qu'un seul trait commun : son
nom de "rasters". En effet, pour créer cet effet impressionnant, il ne faut pas utiliser le Copper
mais le Blitter. Je ne m'attarde pas à vous présenter le Blitter et ses attributs, ceci a déjà été
fait dans cette revue.
Passons donc tout de suite à l'explication : il suffit d'afficher un BOB de trois pixels de hauteur sur
seize de largeur et de l'animer de droite à gauche. L'astuce est de recopier ce BOB quelques lignes
plus bas, tout en modifiant ses coordonnées pour créer un effet de vague le Copper se chargeant
ensuite de recopier la dernière ligne des BOB sur ce qui reste de l'ecran, en modifiant les valeurs
modulo des plans de bits.
Le programme d'exemple qui suit anime 80 barres de ce type. Si vous désirez redessiner le BOB
qui nous sert de modèle, vous devrez pendre en considération les contraintes suivantes quant
à sa taille :
- 16 pixels de largeur (1 mot).
- 3 lignes de hauteur.
- 3 plans de bits (8 couleurs).
Notez bien que cette routine peut être très nettement optimisée, de façon à prendre encore moins
de temps pendant le VBL (80 lignes de raster).
Attention : les caractères antislash ont été supprimé du listing lors de la mise en page. Ces caractères
sont normalement présents dans l'introduction des paramètres des macros.
|