Forum » » Création-Développement » » Petit tuto Hollywood create brush
Posté : 19-12-2010 10:47
Bonjour,
/* Petit tutoriel sur la création de&nbs p;brush avec hollywood ou
comment créer des brush a partir de  ;commande de traçage*/
@DISPLAY{Mode = "ask",WIDTH=640,HEIGHT=480}
/* Mode="ask" permet de demander à l'uti lisateur d'être soit
en mode fenêtre soit en mode plein & eacute;cran*/
SetFillStyle(#FILLCOLOR)
/* #FILLCOLOR défini que chaque figure g éométrique doit être rempli
par la couleur de traçage défini */
Local Y=-60 ; la position Y de dépa rt du texte
CreateBrush(1, 32, 32,#BLACK)
; Création d'une brush vide de 32x32&nbs p;pixel elle est identifié N?1 (couleur NO IR)
SelectBrush(1) ; On sélectionne la Brush 1 créé auparavant
; On trace se& nbsp;que l'on veut dedans, ici 7 rond plein< br /> Circle(0, 0, 16, ARGB(100,$990000))
Circle(1, 1, 15, ARGB(100,$AA0000))
Circle(2, 2, 14, ARGB(100,$BB0000))
Circle(3, 3, 13, ARGB(100,$CC0000))
Circle(4, 4, 12, ARGB(100,$DD0000))
Circle(5, 5, 11, ARGB(100,$EE0000))
Circle(6, 6, 10, ARGB(100,$FF0000))
/* ARGB défini une couleur avec transparence, la transparence se déf ini
entre 0 et 255, ici on a choisi la valeur 100. La couleur doit  ;toujours
être identifié par $  ;suivi de 6 données notées en hexad écimale */
EndSelect ; On déselectionne&nb sp;la brush
SetBrushTransparency(1, #BLACK)
/* On défini que la c ouleur transparente (donc non visible) dans la&nb sp;brush 1
est la couleur noir, donc au finale, la brush 1 sera une boule et&n bsp;non un
carré noir de 32x32 pixel& nbsp;avec un rond à l'intérieur */
Dim QCOS[720] ; On réserve de la m& eacute;moire (donc un tableau)
For Local I=0 To 719
QCOS[I]=Cos(I*0.1)*96 ; on préc alcule l'animation des boules rouges
Next
Function GO()
; On démare la fonction&nb sp;
Flip ; on passe de l'é ;cran de traçage à l'écran finale
Cls ; on efface l'écran&nb sp;ou l'on travail
TextOut(#CENTER,Y, "**************** *")
TextOut(#CENTER,Y+8, "* B oule Wave *")
TextOut(#CENTER,Y+16, "* Par Art blink *")
TextOut(#CENTER,Y+24,"* Programm&eac ute; *")
TextOut(#CENTER,Y+32,"* Avec *")
TextOut(#CENTER,Y+40,"* Hollywood&nb sp; *")
TextOut(#CENTER,Y+48,"*****************")
/* Y est la variable qui&nbs p;permet de scroller le texte */
; Et un jeu de boucle
For Local T=0 To 448 Step 32 ; step&n bsp;32 car la brush a pour dimension 32x32
For Local I=0 To 6 ; 7& nbsp;brush/lignes
DisplayBrush(1,QCOS[4*I+A+T/1 6]+100,T)
Next
For Local I=0 To 6 ; 7& nbsp;brush/lignes
DisplayBrush(1,QCOS[4*I+B+T/1 6]+500,T)
Next
Next
Y=Y+1 ; scroll
A=A+1 ; déplacement du curseur dans le&n bsp;tableau pour les boules de gauche
B=B-1 ; déplacement du curseur dans le&n bsp;tableau pour les boules de droite
If A>313 Then A=0 ; on limite&nb sp;pour redémarrer
If B<0 Then B=313 ; on limite&nb sp;pour redémarrer
If Y>500 Then Y=-60 ; on limite pour&nb sp;redémarrer
EndFunction
; mise en route du double buffer
BeginDoubleBuffer
; interval pour la function GO de 50 FPS (1000=1 seconde)
SetInterval(1,GO,1000/50)
; Boucle infini
Repeat
WaitEvent
Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=941&forum=14