Lib sur l'animation du texte

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Lib sur l'animation du texte

Message par Oliv »

Garzul (qu'est-ce qu'il nous fait faire celui-là, un jour on va copier son orthographe :lol: ) m'a demandé comment faire onduler du texte, je ne savais pas mais j'avais une peite idée alors j'ai essayé et j'ai peut-être réinventé la roue (soyons modestes) mais voilà mon code. Je vais y mettre d'autres animation que j'ai en tête et faire un lib.

essayez aussi en metant les paramètres Hauteur et Vitesse à 1, moi je trouve ça très drôle, ça fait plus vibreur que onduleur mais bon :D

edit : Grace à Garzul vous avez le droit aux comentaires de la fonction Ondulation()

Code : Tout sélectionner

InitSprite()

; Variables
Hauteur.l = 2 ; Multiplicateur de Sin() qui augmente ou réduit le débatement du texte.
Vitesse.l = 90 ; Temps du Delay() qui ralentit/augmente l'animation.
Texte.s = "Ceci est un texte qui ondule"
Global Texte,Y.l,Angle.l,Hauteur,Vitesse


; Création de la fenêtre - en plein écran le mouvement est plus lisse
OpenWindow(0,0,0,220,70,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered,"Texte")
OpenWindowedScreen(WindowID(),0,0,220,70,0,0,0)

Procedure Affichage()
  FlipBuffers()
  ClearScreen(0,0,0)
EndProcedure

Procedure Ondulation()
  X.l = 10
  StartDrawing(ScreenOutput()) ; Pour pouvoir utiliser les commandes des dessin 2D.
    DrawingMode(1) ; On selectionne le mode pour ne pas avoir de fond derrière es lettres.
    FrontColor(255,0,0) ; On change la couleur.
    For i = 1 To Len(Texte) ; On repette pour chaque lettre.
      X + (TextLength(Texte) / Len(texte)) ; On avance en X de la taille d'un caractère.
      Angle + 1 ; On augmente l'angle d'un.
      If Angle > 360 ; si il est supérieur à 360 (un tour) on le remet à 0. On pourrait ne pas mettre
; ce controle mais au bout d'un certain temps la valeur maximale des long serait dépassée.
        Angle = 0
      EndIf
      Locate(X,27 + (Sin(Angle) * Hauteur)) ; On se place en X et en Y.
; Sin(Angle) sert à donner le décalage de chaque lettre, on multiplie par Hauteur pour l'augmenter.
      DrawText(Mid(Texte,i,1)) ; On affiche la lettre.
    Next i ; et on recommence...
  StopDrawing() ; On signife que l'on arrête les fonctions dessin 2D.
EndProcedure

Repeat
  Select WindowEvent()
    Case #PB_Event_CloseWindow
      Sortie.b = 1
  EndSelect
  Ondulation()
  Affichage()
  Delay(Vitesse)
Until Sortie = 1

End
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

sympa, une suggestion (en espérant me faire comprendre)

ton texte ondule selon une hauteur, on considere que c'est le diametre du cercle sur le quel le texte ondule...
avec ca et les fonctions TextLength() et Mid() tu peux changer ton effet de facon à ce que ca ondule aussi à l'horizontale...

je vais essayer de faire un exemple... mais avec la hauteur des caracters c'est pas évident ^^

Code : Tout sélectionner

                ondu
              i     le
             u        !
s           q          !
 u        e
  pe    xt
    r te
au lieu de

Code : Tout sélectionner

   e   e           u   !
s p r t x e q i o d l !
 u       t   u   n   e
Dri
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Vous voyez que je peux donner des idéés a quelqu'un .

Sinon j'ai fait un programme avec le code d'oliv sa fait un effet matrix.

ps : Oliv dis moi ce que t'en pense !

Voici le code : (pas commenter et brouillon et ATTENTION AU YEUX )

Code : Tout sélectionner

InitSprite() And InitKeyboard()

;- Declarations
; Constantes

; Structures

; Listes

; Buffer

; Variables
Hauteur.l = 700 ; Multiplicateur de Sin() qui augmente ou réduit le débatement du texte.
Vitesse.l = 1 ; Temps du Delay() qui ralentit/augmente l'animation
Texte.s = "010101010101010101010101010101010101010101010101010110101010101010010101010101010101010101010100101010101010101010101010101010101010101001"
Texte2.s = "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100101010101010101010101010100"
Texte3.s = "010101010101010101010101010101010101010101010101010110101010101010010101010101010101010101010100101010101010101010101010101010101010101001"
Texte4.s = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
Texte5.s = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
Global Texte , Texte2 , Texte3 , Texte4 , Texte5 , Y.l , Angle.l , Hauteur , Vitesse

LoadFont (0, "Courier", 15) 

; Création de la fenêtre
OpenScreen(1024,768,32,"texte")

Procedure Affichage()
  FlipBuffers()
  ClearScreen(0,0,0)
EndProcedure

Procedure Ondulation()
  X.l = 0
  StartDrawing(ScreenOutput())
    DrawingMode(1)
    DrawingFont(UseFont(0))                 
    FrontColor($7B,$E0,$84)
    For i = 1 To Len(Texte)
      X + (TextLength(Texte) / Len(texte))
      Angle + 1
      If Angle > 360
        Angle = 0
      EndIf
      Locate(X,695 + (Sin(Angle) * Hauteur))
      DrawText(Mid(Texte,i,1))
    Next i
  StopDrawing()
EndProcedure

Procedure Ondulation2()
  X.l = 0
  StartDrawing(ScreenOutput())
    DrawingMode(1)
    DrawingFont(UseFont(0))                 
    FrontColor($7B,$E0,$84)
    For i = 1 To Len(Texte2)
      X + (TextLength(Texte2) / Len(texte2))
      Angle + 1
      If Angle > 360
        Angle = 0
      EndIf
      Locate(X,620 + (Sin(Angle) * Hauteur))
      DrawText(Mid(Texte2,i,1))
    Next i
  StopDrawing()
EndProcedure

Procedure Ondulation3()
  X.l = 0
  StartDrawing(ScreenOutput())
    DrawingMode(1)
    DrawingFont(UseFont(0))                 
    FrontColor($7B,$E0,$84)
    For i = 1 To Len(Texte3)
      X + (TextLength(Texte3) / Len(texte3))
      Angle + 1
      If Angle > 360
        Angle = 0
      EndIf
      Locate(X,650 + (Sin(Angle) * Hauteur))
      DrawText(Mid(Texte3,i,1))
    Next i
  StopDrawing()
EndProcedure

Procedure Ondulation4()
  X.l = 0
  StartDrawing(ScreenOutput())
    DrawingMode(1)
    DrawingFont(UseFont(0))                 
    FrontColor($7B,$E0,$84)
    For i = 1 To Len(Texte4)
      X + (TextLength(Texte4) / Len(texte4))
      Angle + 1
      If Angle > 360
        Angle = 0
      EndIf
      Locate(X,700 + (Sin(Angle) * Hauteur))
      DrawText(Mid(Texte4,i,1))
    Next i
  StopDrawing()
EndProcedure

Procedure Ondulation5()
  X.l = 0
  StartDrawing(ScreenOutput())
    DrawingMode(1)
    DrawingFont(UseFont(0))                 
    FrontColor($7B,$E0,$84)
    For i = 1 To Len(Texte5)
      X + (TextLength(Texte5) / Len(texte5))
      Angle + 1
      If Angle > 360
        Angle = 0
      EndIf
      Locate(X,700 + (Sin(Angle) * Hauteur))
      DrawText(Mid(Texte5,i,1))
    Next i
  StopDrawing()
EndProcedure

Repeat

  Ondulation()
  Ondulation2()
  Ondulation3()
  Ondulation4()
  Ondulation5()
  
  Affichage()
  Delay(Vitesse)
  
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
ps : Merci Oliv :D [/code][/quote]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

l'effet machine a ecrire !! :lol:

Code : Tout sélectionner

InitSprite()

; Variables
Hauteur.l = 2 ; Multiplicateur de Sin() qui augmente ou réduit le débatement du texte.
Vitesse.l = 20 ; Temps du Delay() qui ralentit/augmente l'animation.
Texte.s = "Ceci est un texte qui ondule"
Global Texte,y.l,Angle.l,Hauteur,Vitesse


; Création de la fenêtre - en plein écran le mouvement est plus lisse
OpenWindow(0,0,0,220,70,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered,"Texte")
OpenWindowedScreen(WindowID(),0,0,220,70,0,0,0)

Procedure Affichage()
    FlipBuffers()
    ClearScreen(0,0,0)
EndProcedure

Procedure Ondulation()
    x.l = 10
    StartDrawing(ScreenOutput()) ; Pour pouvoir utiliser les commandes des dessin 2D.
    DrawingMode(1) ; On selectionne le mode pour ne pas avoir de fond derrière es lettres.
    FrontColor(255,0,0) ; On change la couleur.
    For i = 1 To Len(Texte) ; On repette pour chaque lettre.
        x + (TextLength(Texte) / Len(Texte)) ; On avance en X de la taille d'un caractère.
        Angle + 1 ; On augmente l'angle d'un.
        If Angle > 360 ; si il est supérieur à 360 (un tour) on le remet à 0. On pourrait ne pas mettre
            ; ce controle mais au bout d'un certain temps la valeur maximale des long serait dépassée.
            Angle = 0
        EndIf
        Locate(x,27 + (Sin(Angle) * Hauteur)/Sin(Angle)/Hauteur) ; On se place en X et en Y.
        ; Sin(Angle) sert à donner le décalage de chaque lettre, on multiplie par Hauteur pour l'augmenter.
        DrawText(Mid(Texte,i,1)) ; On affiche la lettre.
    Next i ; et on recommence...
    StopDrawing() ; On signife que l'on arrête les fonctions dessin 2D.
EndProcedure

Repeat
    Select WindowEvent()
        Case #PB_Event_CloseWindow
            Sortie.b = 1
    EndSelect
    Ondulation()
    Affichage()
    Delay(Vitesse)
Until Sortie = 1

End
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

je me suis permit de modifier ton code pour faire onduler le texte

Code : Tout sélectionner

InitSprite()

; Variables
#HauteurSin.l = 20 ; Coef qui joue sur la hauteur de la sinusoide
#LargeurSin.l = 20 ; Coef qui joue sur la largeur de la sinusoide
#VitesseAngle.f =  2 * #pi / 50 ; vitesse de modification de l'angle de départ du texte
#Vitesse.l = 25 ; Temps du Delay() qui ralentit/augmente l'animation.
#Texte.s = "Ceci est un texte qui ondule"
Global Angle.f, FontID

; Création de la fenêtre - en plein écran le mouvement est plus lisse
OpenWindow(0, 0, 0, 250, 100, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Texte")
OpenWindowedScreen(WindowID(), 0, 0, 250, 100, 0, 0, 0)

Procedure Ondulation(Texte.s)
  StartDrawing(ScreenOutput()) ; Pour pouvoir utiliser les commandes des dessin 2D.
    DrawingMode(1) ; On selectionne le mode pour ne pas avoir de fond derrière les lettres.
    FrontColor(255, 255, 255) ; On change la couleur.
    DrawingFont(FontID()) ; On change la police
    
    Angle + #VitesseAngle ; Angle de départ de la sinusoide en radian
    
    If Angle >= 2 * #pi
      Angle = 0
    EndIf
    
    ; On affiche toute les lettres
    PosX = 10 ; Position du caractère
    For n = 1 To Len(Texte) ; Pour chaque lettre du texte
      
      Lettre.s = Mid(Texte, n, 1) ; on récupère la lettre à la position n
      
      PosY = 50 + #HauteurSin * Sin(Angle + PosX / #LargeurSin) ; on calcul la position en Y de la lettre
      ; On part du centre de l'image (50) puis on ajoute un sin
      ; #HauteurSin fait varier l'amplitude du mouvement
      ; l'angle mis dans le sinus est d'abord composé de l'angle de départ d'affichage du texte (Angle)
      ; puis on augmente l'angle au fur et à mesure que l'on affiche des lettres avec le coefficient #LargeurSin qui permet de faire varier la largeur de la sinusoide
      
      Locate(PosX, PosY)
      DrawText(Lettre)
      
      PosX + TextLength(Lettre)
      
    Next
    
  StopDrawing() ; On signife que l'on arrête les fonctions dessin 2D.
EndProcedure

;- Début du programme

; On charge une police
FontID = LoadFont(0, "Tahoma", 10, #PB_Font_HighQuality)

Repeat
  Event = WindowEvent()
  
  ClearScreen(0, 0, 0)
  
  Ondulation(#Texte)
  
  FlipBuffers()
  
  Delay(#Vitesse)
Until Event = #PB_Event_CloseWindow

End
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Et voila Regis, t'as fait exactement ce que je suggérait à Oliv
comme ca je suis sûr d'être compris :p

Dri
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

ahh, j'avais pas regardé l'aide, je savais pas que la fonction était en radians :oops: . Sinon je n'aurais pas fait exactement comme ça, mais dans le même genre :oops: .

@Dobro : Chouette ton animation

@Garzul : Utilise des paramètres pour tes fonctions, ça évite d'en refaire 5.

@Soldat Innconu : Par contre, je vais remodifier ton code pour remettre les paramettres en variables (ou à la rigueur en paramètre de la procédure) car une constante je peux pas changer dans un prog.


Je peux mettre vos codes dans une lib ?
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Pas de prob :
tu me donneras la dernière version, je la mettrai sur Codes-FR, si ça te gène pas ;)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

ok
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

effet lac d'annecy !! :D

Code : Tout sélectionner

LoadFont(1, "arial", 50 ,#PB_Font_Italic ) 
LoadFont(2, "arial", 50 ) 
UseFont(1) 
Resultat = InitSprite() 
Global Angle,amplitude
amplitude=5
Texte.s="Le Lac d'annecy !"





WindowID = OpenWindow(1, 50, 50, 640, 200,  #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  , "hello") 

OpenWindowedScreen(WindowID, 0, 0, 640, 200, 1, 0, 0) 



CreateImage(100, 640, 100) 
StartDrawing( ImageOutput())
FrontColor($0,$FF,$FF) 
BackColor(0, 0, 0) 

UseFont(1) 
DrawingFont(FontID()) 
 DrawingMode(1) 
Locate(0, 0)  
DrawText(Texte.s)  
StopDrawing() 

For t=0 To 100
    GrabImage(100, t, 0, t, 640,1)   
Next t
    
Repeat
    
    For y= 0 To 100 
        StartDrawing(ScreenOutput()) 
        UseFont(2) 
        DrawingFont(FontID()) 
        DrawingMode(1) 
        
        FrontColor($95,$25,$BA) 
        BackColor(0, 0, 0) 
        Locate(40, 0)  
        DrawText(Texte.s)  
        
        Angle+1 :If Angle=360*10: Angle=0 :EndIf 
        x+(Sin(Angle)* amplitude)
        DrawImage( UseImage(y), x+y, y+50,640,1)  
        StopDrawing()          
    Next y  
    
    
     FlipBuffers(50)
    
    ClearScreen(0, 0, 0) 
    Event=WindowEvent() 
    delay(1)
    
    
Until Event=#PB_Event_CloseWindow 

Dernière modification par Backup le jeu. 19/août/2004 23:47, modifié 2 fois.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

bof, je préfère la mer :mrgreen:

en passant j'ai corrigé un truc, il manquait un Event = WindowEvent()

Code : Tout sélectionner

LoadFont(1, "arial", 50 ,#PB_Font_Italic ) 
LoadFont(2, "arial", 50 ) 
UseFont(1) 
Resultat = InitSprite() 
Global Angle,amplitude 
amplitude=5 
Texte.s="Le Lac d'annecy !" 





WindowID = OpenWindow(1, 50, 50, 640, 200,  #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  , "hello") 
WindowID = WindowID(1) 
OpenWindowedScreen(WindowID, 0, 0, 640, 200, 1, 0, 0) 

Event=WaitWindowEvent() 

CreateImage(100, 640, 100) 
StartDrawing( ImageOutput()) 
FrontColor($0,$FF,$FF) 
BackColor(0, 0, 0) 

UseFont(1) 
DrawingFont(FontID()) 
 DrawingMode(1) 
Locate(0, 0)  
DrawText(Texte.s)  
StopDrawing() 

For t=0 To 100 
    GrabImage(100, t, 0, t, 640,1)    
Next t 
    
Repeat 
    
    For y= 0 To 100 
        StartDrawing(WindowOutput()) 
        UseFont(2) 
        DrawingFont(FontID()) 
        DrawingMode(1) 
        
        FrontColor($95,$25,$BA) 
        BackColor(0, 0, 0) 
        Locate(40, 0)  
        DrawText(Texte.s)  
        
        Angle+1 :If Angle=360*10: Angle=0 :EndIf 
        x+(Sin(Angle)* amplitude) 
        DrawImage( UseImage(y), x+y, y+50,640,1)  
        StopDrawing()          
    Next y  
    
    
     FlipBuffers(50) 
    
    ClearScreen(0, 0, 0) 
    
    Event = WindowEvent()
    
Until Event=#PB_Event_CloseWindow 
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

encore mieux !!

Code : Tout sélectionner

 LoadFont(1, "arial", 50 ,#PB_Font_Italic )
LoadFont(2, "arial", 50 )
UseFont(1)
Resultat = InitSprite()
Global Angle,amplitude
amplitude=2
Texte.s="Le Lac d'annecy !"





WindowID = OpenWindow(1, 50, 50, 640, 200,  #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  , "hello")

OpenWindowedScreen(WindowID, 0, 0, 640, 200, 1, 0, 0)



CreateImage(100, 640, 100)
StartDrawing( ImageOutput())
FrontColor($0,$FF,$FF)
BackColor(0, 0, 0)

UseFont(1)
DrawingFont(FontID())
DrawingMode(1)
Locate(0, 0) 
DrawText(Texte.s) 
StopDrawing()

For t=0 To 100
    GrabImage(100, t, 0, t, 640,1)  
Next t
   
Repeat
    
    For y= 0 To 100
        StartDrawing(WindowOutput())
        UseFont(2)
        DrawingFont(FontID())
        DrawingMode(1)
        
        FrontColor($95,$25,$BA)
        BackColor(0, 0, 0)
        Locate(40, 0) 
        DrawText(Texte.s) 
        
        Angle+1 :If Angle=360*10: Angle=0 :EndIf
        x+(Sin(Angle*2*3.1415926/50)* amplitude)
        DrawImage( UseImage(y), x+y, y+50,640,1) 
        StopDrawing()            
    Next y 
    
    
    FlipBuffers(50)
    
    ClearScreen(0, 0, 0)
    Event=WindowEvent()
    delay(1)
  
    
Until Event=#PB_Event_CloseWindow 
Dernière modification par Backup le jeu. 19/août/2004 23:49, modifié 3 fois.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

:lol: :lol: . Très sympa :D
Maintenant tu met les planches à voile et l'auberge du père machin à Talloir :D :D

T'habites par là bas ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'y ai vecu les 12 derniere année !! :D
j'ai mem ete une figure locale puisque j'y ai ete commercant !!
(annecy le vieux )

ps le pere bize a talloire ! :D


ps2: merci regis !! pour l'event !! c'est un oublis !!

tout comme le radiant !! moi aussi je me suis fait avoir avec ça !!
:)


Voici l'effet Canal + :D

Code : Tout sélectionner

LoadFont(1, "arial", 50 ,#PB_Font_Italic )
LoadFont(2, "arial", 50 )
UseFont(1)
Resultat = InitSprite()
Global Angle,amplitude
amplitude=2
Texte.s="Le Lac d'annecy !"





WindowID = OpenWindow(1, 50, 50, 640, 200,  #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  , "hello")

OpenWindowedScreen(WindowID, 0, 0, 640, 200, 1, 0, 0)



CreateImage(100, 640, 100)
StartDrawing( ImageOutput())
FrontColor($0,$FF,$FF)
BackColor(0, 0, 0)

UseFont(1)
DrawingFont(FontID())
DrawingMode(1)
Locate(0, 0) 
DrawText(Texte.s) 
StopDrawing()

For t=0 To 100
    GrabImage(100, t, 0, t, 640,1)
    ;GrabSprite(t, 0, 0, 100, 1) 
Next t
   
Repeat
   
    For y= 0 To 100
        StartDrawing(WindowOutput()) 
        Angle+1 :If Angle=360*10: Angle=0 :EndIf
        
        x=1+(Sin(Angle)* amplitude*Random(14))
        DrawImage( UseImage(y), x+y, y+50,640,1) 
        StopDrawing()
        dep+1 :If dep>640 :dep=-100:EndIf
        
    Next y 
    
    
    FlipBuffers(50)
    
    ClearScreen(0, 0, 0)
    Event=WindowEvent()
    delay(1)
    
    
Until Event=#PB_Event_CloseWindow 
Dernière modification par Backup le jeu. 19/août/2004 23:50, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

voici un effet pseudo 3D l'ondulation semble aller dans la profondeur

:D

Code : Tout sélectionner

LoadFont(1, "arial", 50 )
LoadFont(2, "arial", 50 )
UseFont(1)
Resultat = InitSprite()
Global Angle,amplitude
amplitude=10
Texte.s="Le Lac d'annecy !"





WindowID = OpenWindow(1, 50, 50, 640, 200,  #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  , "hello")
WindowID = WindowID(1)
OpenWindowedScreen(WindowID, 0, 0, 640, 200, 1, 0, 0)

CreateImage(100, 640, 100)
StartDrawing( ImageOutput())
FrontColor($0,$FF,$FF)
BackColor(0, 0, 0)

UseFont(1)
DrawingFont(FontID())
DrawingMode(1)
Locate(0, 0) 
DrawText(Texte.s) 
StopDrawing()

For t=0 To 100
    GrabImage(100, t, 0, t, 640,1) 
Next t
   
Repeat
   
    For y= 0 To 100
        StartDrawing(WindowOutput()) 
        
        StartDrawing(WindowOutput())
        UseFont(2)
        DrawingFont(FontID())
        DrawingMode(1)
        
        FrontColor($95,$25,$BA)
        BackColor(0, 0, 0)
        Locate(40, 0) 
        DrawText(Texte.s) 
        
        
        
        
        Angle+1 :If Angle=360*10: Angle=0 :EndIf 
        x=1+(Sin(Angle*2*3.1415926/50)* amplitude)
        DrawImage( UseImage(y), x+40, y+20*x/25+50,640,1) 
        StopDrawing()
        dep+1 :If dep>640 :dep=-100:EndIf
        
    Next y 
    
    
    FlipBuffers(50)
    
    ClearScreen(0, 0, 0)
    Event=WindowEvent()
    delay(1)
    
    
Until Event=#PB_Event_CloseWindow 
Dernière modification par Backup le jeu. 19/août/2004 23:51, modifié 1 fois.
Répondre