Page 1 sur 1

modifier la couleur dans une structure

Publié : jeu. 03/juil./2008 15:23
par chikun
j'en ai marre de chercher ....

la routine, que m'a remis mister Dobro pour mon apprentissage (mici),
que je n'arrive pas à modifier pour changer progressivement la couleur en pushant (<arf) la lettre "Q" de maitre capelo
bref :roll: j'avance comme un cameleon

namare :cry:

Code : Tout sélectionner



;*******************************************************************************************************
;- déclarations des procedures 
;{
Declare msg_erreur(Chaine$) 
;******************************************************************************************************* 

;- test du materiel 
;******************************************************************************************************* 
If InitSprite ()=0 
    msg_erreur( "impossible d'initialiser les sprites" + Chr (10)+ " le prg va quitter " ) 
     End 
EndIf 
If InitMouse ()=0 
    msg_erreur( "impossible d'initialiser la souris" + Chr (10)+ " le prg va quitter " ) 
     End 
EndIf 

If InitKeyboard ()=0 
    msg_erreur( "impossible d'initialiser le clavier" + Chr (10)+ " le prg va quitter " ) 
     End 
EndIf 
If InitJoystick ()=0 
    msg_erreur( "impossible d'initialiser le joystick" + Chr (10)+ " on va continuer sans " ) 
    joystick=0 
Else 
    joystick=1 ; le joystick est present !! 
EndIf 
;}


;******************************************************************************************************* 
;- initialisations constante structure tableaux variables 
;{


r=255
g=0
b=0

#nous =0

Structure balle 
    x.w
    y.w 
    identite.s 
    sensx.l 
    sensy.l 
    r.l
    g.l
    b.l
EndStructure 


Dim balle.balle(1) 

;}

;- ouvre ecran 
OpenScreen (1024, 768, 32, "squelette ecran" ) 
KeyboardMode (1) 
 
;*******************************************************************************************************
;-creation du sprite
;{
CreateSprite ( #nous ,32,32) ; on cree un sprite (un Carre) 
StartDrawing ( SpriteOutput ( #nous ) ) ; on va dessiner dans le sprite 
    Circle (16, 16, 16, RGB (r,g,b)) ; on dessine un carre dedans(dans le sprite) 
    balle( #nous )\identite.s= "Nous" 
     DrawText (0, 8, "HOM" ) ; on ecrit l'identité sur le sprite ! 
StopDrawing () 
balle( #nous )\x=32 ; placement de notre sprite en haut a gauche 
balle( #nous )\y=32 

;}


;******************************************************************************************************* 
;-boucle principale 
;{

Repeat 
     StartDrawing ( ScreenOutput () ) 
         DrawText (1024/2-15, 1, "By Dobro" , RGB (255,255,0), RGB (0,0,0)) 
     StopDrawing () 
     
     ;- examine le materiel 
     ;******************************************************************************************************* 
     ExamineKeyboard () 
     ExamineMouse () 
     If joystick=1 
         ExamineJoystick () ; optionel on examine seulement si present !! 
     EndIf 
     ; ********************************************************************* 
     ;-les deplacements 
     ; Au clavier 
     
     If KeyboardPushed ( #PB_Key_Up ) ; fleche haut 
        balle( #nous )\y =balle( #nous )\y-8 
     EndIf 
     If KeyboardPushed ( #PB_Key_Down ) ; fleche bas 
        balle( #nous )\y =balle( #nous )\y+8 
     EndIf 
     If KeyboardPushed ( #PB_Key_Left ) ; fleche gauche 
        balle( #nous )\x =balle( #nous )\x-8 
     EndIf 
     If KeyboardPushed ( #PB_Key_Right ) ; fleche droite 
        balle( #nous )\x =balle( #nous )\x+8 
     EndIf 
     If KeyboardPushed (#PB_Key_Q)
       balle( #nous )\r= balle( #nous )\r-10 ; <==============================ICI !!!!!!!!
     EndIf
           
     
     
     DisplayTransparentSprite ( #nous , balle(0)\x, balle(0)\y) ; on affiche notre sprite 
     
     
          
     FlipBuffers () ; affiche le resultat a l'ecran ! 
     ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage 

 
 
Until KeyboardPushed ( #PB_Key_Escape ) Or MouseButton (2) 

;}


;*******************************************************************************************************
;- fin
End 



; **************** Zone des procedures ****************** 
Procedure msg_erreur(Chaine$) 
     MessageRequester ( "erreur" , Chaine$, #PB_MessageRequester_Ok ) 
EndProcedure 
; ************************************************************* 
et par la meme occasion, on peut poster tout replier ?

Publié : jeu. 03/juil./2008 15:51
par Octavius
Ta structure n'est pas liée de manière inhérente à ton dessin. Tu as créé le dessin UNE FOIS à partir des informations de ta structure. Si tu modifies la structure et que tu veux répercuter ces modifications sur ton dessin tu dois REFAIRE un dessin à chaque fois.

Le plus simple dans ton cas je crois ça sera d'utiliser la commande FillArea() chaque fois que tu appuies sur "Q".