[Resolu] Problème de sprites!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

[Resolu] Problème de sprites!

Message par MLD »

Bonjours a tous

N'étant pas familiarisé avec les sprites, j'ai un petit problème. :cry:
Je voudrai faire clignoter l'inscription Mm3j en la faisant passer de la couleur verte au jaune.
Voici le code. Ou est le problème??
Merci d'avance
Michel

Code : Tout sélectionner

Enumeration
#Fenpr = 1

EndEnumeration
Resultat = InitSprite()
Global FontID1
FontID1 = LoadFont(1, "Courier New",8 ,#PB_Font_HighQuality)
FontID2 = LoadFont(2, "Courier New",9 ,#PB_Font_HighQuality)

Global coulmm3
coulmm3 = $21FF0D 


#width = 700
#height = 500 
    OpenWindow(#Fenpr, 0, 0, #width, #height, "Variation ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    ContainerGadget(5,98, 28, 504, 404 ,#PB_Container_Double)
    Handle = WindowID (#Fenpr) ;Handle de la fenêtre  
       
    OpenWindowedScreen(WindowID(#Fenpr), 100, 30, #width-200, #height-100, 1, 100, 70)
    AddWindowTimer(#Fenpr, 1, 250)
    
    CreateSprite(1, #width, #height) ;grille 
    Gosub Sprite1
    CreateSprite(2, #width, 25) 
    Gosub Sprite2; inscriptions haut de grille
    CreateSprite(3, 45, 355)
    Gosub Sprite3 ;Echelle a gauche de la grille 
    CreateSprite(4, 45, 25)
    Gosub sprite4; Inscription a droite de la grille
    CreateSprite(5,#width , 25)
    Gosub sprite5; 1ere inscription sous la grille
   CreateSprite(6,#width , 25)
   Gosub sprite6;2em inscription sous la grille   
  
   
  Repeat 
  Event = WindowEvent()
     If Event = #PB_Event_Timer And EventTimer() = 1
        If coulmm3 = $21FF0D  
        coulmm3 = $FFFF
        Gosub sprite6
        Else 
        coulmm3 = $21FF0D 
        Gosub sprite6
      EndIf  
     EndIf
  Until event = #PB_Event_CloseWindow
  End
  
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Sous programmes ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Sprite1: ; grille  
     ; on a donc largeur 500 hauteur 400
 If StartDrawing(SpriteOutput(1)) 
    For i = 0 To 16 
     LineXY(50 +(i *25) ,50-5,50 +i *25,350+5,$405020) ; lignes verticales
    Next i
    For i = 0 To 4 
     LineXY(50 +(i *100) ,50-5,50 +i *100,350+5,$405070) ; lignes verticales principales
    Next i
    For i = 1 To 29 
     LineXY(50,50+ (i*10),450,50+ (i*10),$404040) ; lignes secondaires hz en partant du haut
    Next i  
    For i = 0 To 6 
     LineXY(50-5,50+ (i*50),450+5,50+ (i*50),$405070) ; lignes principales hz
    Next i 
    LineXY(50-8,200,450+8,200,$AFAFAF) ; ligne hz centrale 
    StopDrawing()
 EndIf 
 DisplaySprite(1,0,0)          
Return

sprite2: ; inscriptions en haut de grille  
If StartDrawing(SpriteOutput(2)) 
  Resultat = DrawText (5, 5, "Titre:" ,$C0C000,$0)
  Resultat = DrawText (40 ,5, "XXXX" ,$FF00AA,$0)    
  Resultat = DrawText (180, 5, "Der fixing:" ,$C0C000,$0)
  Resultat = DrawText (248, 5, "120.62 le:11/12/2010",$FF00AA,$0)
  Resultat = DrawText (390, 5, "%P./C:" ,$C0C000,$0)
  Resultat = DrawText (440, 5, "+100%" ,$FF00AA,$0)
  StopDrawing () 
 EndIf     
 DisplaySprite(2,0,0)        
 Return
 
sprite3: ;Echelle a gauche de la grille 
If StartDrawing(SpriteOutput(3)) 
    Resultat = DrawText (15, 15, "+3%" ,$21FF0D,$0)
    Resultat = DrawText (15 ,65, "+2%" ,$21FF0D,$0)    
    Resultat = DrawText (15, 115, "+1%" ,$21FF0D,$0)
    DrawingFont(FontID1)
    Resultat = DrawText (1, 165, "20.33",$FFFFFF,$0)
    DrawingFont( #PB_Default )
    Resultat = DrawText (15,215, "-1%" ,$FF,$0)
    Resultat = DrawText (15, 265, "-2%" ,$FF,$0)
    Resultat = DrawText (15, 315, "-3%" ,$FF,$0)
   StopDrawing () 
  EndIf
DisplaySprite(3,0,26)      
Return

sprite4:; Inscription a droite de la grille
If StartDrawing(SpriteOutput(4)) 
     Resultat = DrawText (1,3, "P.A",$FFFFFF,$0)
   StopDrawing () 
EndIf     
DisplaySprite(4,460,187)       
Return

sprite5:; 1ere inscription sous la griile
If StartDrawing(SpriteOutput(5)) 
DrawingFont(FontID2)
   For i = 0 To 15 
    Resultat = DrawText (43 +(i *25) ,0,Str((15 -i)+1)+"B",$E3AA9A) 
   Next i
   Resultat = DrawText (443 ,0,"CJ",$8080FF)
   DrawingFont( #PB_Default ) 
  StopDrawing () 
EndIf     
DisplaySprite(5,0,356)     
Return 

sprite6:;2em inscription sous la grille 

If StartDrawing(SpriteOutput(6))  
     Resultat = DrawText (10, 0, "- Cours" ,$FFFFFF,$0)
     ;le problème *********************
     Resultat = DrawText (80 ,0, "- Mm3J" ,coulmm3,$0) ; $21FF0D  
     
     Resultat = DrawText (160, 0, "-Mm5j" ,$FF00AA,$0)
     Resultat = DrawText (230,0, "- Stop",$FF,$0)
     Resultat = DrawText (295,0, "- Frais" ,$0E8BF1,$0)
     Resultat = DrawText (365,0, "- Cible1" ,$E3F11C,$0)
     Resultat = DrawText (440,0, "- Cible2" ,$F87507,$0)
    StopDrawing () 
EndIf     
DisplaySprite(6,0,380)   
Return
Dernière modification par MLD le dim. 20/déc./2009 15:53, modifié 1 fois.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Problème de sprites!

Message par cederavic »

Rajoute simplement un FlipBuffers() après DisplaySprite(6,0,380) ligne 136.
La couleur ne changeait pas car tu l'écran n'était pas "rafraichit"... Après chaque opération de dessin dans un écran (openscreen / openwindowedscreen) il faut utiliser FlipBuffers() pour voir le résultat 8)
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Problème de sprites!

Message par MLD »

Merci CEDERAVIC :D
Ce n'est pas évident en lisant la doc PB. :(
Bon WE
Michel
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: [Resolu] Problème de sprites!

Message par Geo Trouvpatou »

Salut.

Bizarre chez moi avec la 4.40 rien ne clignote.
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: [Resolu] Problème de sprites!

Message par Cool Dji »

Hello,

Chez moi avec la 4.40 et le flipbuffer(), mn3J clignote.
Only PureBasic makes it possible
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: [Resolu] Problème de sprites!

Message par Geo Trouvpatou »

Erreur de ma part, j'avais mal lu.
Je croyais qu'il fallait ajouter "DisplaySprite(6,0,380)"
Et donc en regardant le code de MLD la ligne était bien présente.
C'est en relisant un peu mieux le post de cederavic que j'ai vu qu'il fallait ajouter un FlipBuffers().

MLD aurait dû corriger son 1er post avec le code mis à jour.

Sinon maintenant tout fonctionne.
Répondre